Контекст:
Я развертываю учетную запись хранения, а также один или несколько контейнеров со следующим шаблоном ARM с DevOps Azure соответственно с задачей развертывания ресурсов:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"metadata": {
"description": "The name of the Azure Storage account."
}
},
"containerNames": {
"type": "array",
"metadata": {
"description": "The names of the blob containers."
}
},
"location": {
"type": "string",
"metadata": {
"description": "The location in which the Azure Storage resources should be deployed."
}
}
},
"resources": [
{
"name": "[parameters('storageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2018-07-01",
"location": "[parameters('location')]",
"kind": "StorageV2",
"sku": {
"name": "Standard_LRS",
"tier": "Standard"
},
"properties": {
"accessTier": "Hot"
}
},
{
"name": "[concat(parameters('storageAccountName'), '/default/', parameters('containerNames')[copyIndex()])]",
"type": "Microsoft.Storage/storageAccounts/blobServices/containers",
"apiVersion": "2018-03-01-preview",
"dependsOn": [
"[parameters('storageAccountName')]"
],
"copy": {
"name": "containercopy",
"count": "[length(parameters('containerNames'))]"
}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[parameters('storageAccountName')]"
},
"storageAccountKey": {
"type": "string",
"value": "[listKeys(parameters('storageAccountName'), '2018-02-01').keys[0].value]"
},
"storageContainerNames": {
"type": "array",
"value": "[parameters('containerNames')]"
}
}
}
Ввод может быть, например,
-storageAccountName 'stor1' -containerNames [ 'con1', 'con2' ] -location 'westeurope'
. На следующем шаге я создаю политики сохраненного доступа для развернутых контейнеров.
Проблема:
В первый раз я делаю, что все работает нормально.Но если я выполню конвейер во второй раз, политики сохраненного доступа будут удалены при развертывании шаблона.Сама учетная запись хранения с ее контейнерами и BLOB-объектами не удаляется (как и должно быть).Это вызывает сожаление, потому что я хочу сохранить Политику Хранимого Доступа с ее временем запуска и истечением, как при первом развертывании, более того, я ожидаю, что SAS также станет недействительным (пока не тестировался).
Вопросы:
Почему это происходит?Как я могу избежать этой проблемы и, соответственно, сохранить политики сохраненного доступа?
Спасибо