首页 > 解决方案 > 通过 REST API 为 Azure 存储生命周期管理添加规则不会持续存在(请求不会引发错误) - 使用 StorageV2

问题描述

我正在尝试通过 REST API 添加一个简单的规则,但它不会持续存在。响应 = OK,并且没有抛出错误。我可以通过 powershell 创建相同的规则并且它可以工作。

提交 JSON 后,我收到 HttpStatus“OK”并返回响应负载,但该规则未保存并显示在 Azure 门户中。

我将此 URL / PUT 称为: https ://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default?api-version=2019 -06-01

请求正文:

{
    "properties": {
        "policy": {
            "rules": [
                {
                    "enabled": true,
                    "name": "myRule",
                    "type": "Lifecycle",
                    "definition": {
                        "actions": {
                            "baseBlob": {
                                "delete": {
                                    "daysAfterModificationGreaterThan": 10
                                }
                            }
                        }
                    },
                    "filters": {
                        "blobTypes": [
                            "blockBlob"
                        ]
                    }
                }
            ]
        }
    }
}

HttpStatus = OK
响应正文:

{
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default",
    "name": "default",
    "type": "Microsoft.Storage/storageAccounts/blobServices",
    "properties": {}
}

任何想法为什么这不起作用,我还没有找到任何更新的 API 版本???

标签: azure-storage

解决方案


根据您提供的响应正文,您犯了一个错误。filters应该是 中的一个属性definition。更多详情,请参阅此处

例如

{
    "properties": {
        "policy": {
            "rules": [{
                    "enabled": true,
                    "name": "deleteBlock",
                    "type": "Lifecycle",
                    "definition": {
                        "actions": {
                            "baseBlob": {
                                "delete": {
                                    "daysAfterModificationGreaterThan": 180
                                }
                            }
                        },
                        "filters": {
                            "blobTypes": [
                                "blockBlob"
                            ]
                        }
                    }
                }
            ]
        }
    }
}

在此处输入图像描述 在此处输入图像描述

此外,请注意生命周期管理功能适用于通用 v2 (GPv2) 帐户、blob 存储帐户、高级块 Blob 存储帐户的所有 Azure 区域。更多详情请参考官方文档


推荐阅读