如何将 Blob 生命周期规则添加到 ARM 模板

Joy*_*Joy 5 azure azure-storage-blobs azure-blob-storage

我已经根据现有资源组创建了一个 ARM 模板,

最近我在我的帐户存储中为我的 blob 存储添加了一个新配置,我需要管理它的生命周期,幸运的是,通过添加规则在 azure 门户上可用:

在此处输入图片说明

或通过添加此 json 代码:

{
  "rules": [
    {
      "name": "ruleFoo",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": [ "blockBlob" ],
          "prefixMatch": [ "container1/foo" ]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": { "daysAfterModificationGreaterThan": 30 },
            "tierToArchive": { "daysAfterModificationGreaterThan": 90 },
            "delete": { "daysAfterModificationGreaterThan": 2555 }
          },
          "snapshot": {
            "delete": { "daysAfterCreationGreaterThan": 90 }
          }
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但我不清楚的是在我的 blob 服务部分的哪个部分

{
            "type": "Microsoft.Storage/storageAccounts/blobServices",
            "apiVersion": "[variables('storageAccount_version')]",
            "name": "[concat(variables('storageAccount_name'), '/default')]",
            "tags": {
                "displayName": "Storage Account - Blob Service"
            },
            "dependsOn": [
                "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccount_name'))]"
            ],
            "properties": {
                "cors": {
                    "corsRules": []
                },
                "deleteRetentionPolicy": {
                    "enabled": false
                }
            }
        },
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助!谢谢 !

And*_*zyk 6

以下模板创建存储帐户及其 blob 生命周期。

关键是使用存储帐户名称前缀命名生命周期资源并添加dependsOn 部分。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "storageAccountName": {
            "type": "string",
            "defaultValue": "ajstoragetest444"
        }
    },
    "resources": [
        {
            "name": "[parameters('storageAccountName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "location": "westeurope",
            "sku": {
                "name": "Standard_LRS",
                "tier": "Standard"
            },
            "kind": "StorageV2",
            "properties": {
            }
        },
        {
            "name": "[concat(parameters('storageAccountName'), '/default')]",
            "type": "Microsoft.Storage/storageAccounts/managementPolicies",
            "apiVersion": "2019-06-01",
            "dependsOn": [
                "[concat('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]"
            ],
            "properties": {
                "policy": {
                    "rules": [
                        {
                            "name": "ruleFoo",
                            "enabled": true,
                            "type": "Lifecycle",
                            "definition": {
                                "filters": {
                                    "blobTypes": [
                                        "blockBlob"
                                    ],
                                    "prefixMatch": [
                                        "container1/foo"
                                    ]
                                },
                                "actions": {
                                    "baseBlob": {
                                        "tierToCool": {
                                            "daysAfterModificationGreaterThan": 30
                                        },
                                        "tierToArchive": {
                                            "daysAfterModificationGreaterThan": 90
                                        },
                                        "delete": {
                                            "daysAfterModificationGreaterThan": 2555
                                        }
                                    },
                                    "snapshot": {
                                        "delete": {
                                            "daysAfterCreationGreaterThan": 90
                                        }
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)


Iva*_*ang 5

请查看这篇文章,并注意name: default下面示例中的内容,这是 storageAccounts/managementPolicies 唯一允许的名称:

{
  "name": "default",
  "type": "Microsoft.Storage/storageAccounts/managementPolicies",
  "apiVersion": "2019-04-01",
  "properties": {
    "policy": {
      "rules": [
        {
          "enabled": "boolean",
          "name": "string",
          "type": "Lifecycle",
          "definition": {
            "actions": {
              "baseBlob": {
                "tierToCool": {
                  "daysAfterModificationGreaterThan": "number"
                },
                "tierToArchive": {
                  "daysAfterModificationGreaterThan": "number"
                },
                "delete": {
                  "daysAfterModificationGreaterThan": "number"
                }
              },
              "snapshot": {
                "delete": {
                  "daysAfterCreationGreaterThan": "number"
                }
              }
            },
            "filters": {
              "prefixMatch": [
                "string"
              ],
              "blobTypes": [
                "string"
              ]
            }
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)