通过 REST API 为 Azure 存储生命周期管理添加规则不会持续存在(没有根据请求抛出错误)- 使用 StorageV2

Adding rule for Azure Storage Lifecycle Management via REST API does not persist (no errors thrown on request) - using 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 = 正常
响应正文:

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

关于这不起作用的任何想法,我尚未找到的任何更新 API 版本???

根据您提供的响应正文,您出错了。 filters 应该是 definition 中的 属性。详情请参考here.

例如

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

此外,请注意生命周期管理功能在通用 v2 (GPv2) 帐户、blob 存储帐户、高级块 Blob 存储帐户的所有 Azure 区域都可用。详情请参考official document