Развертывание хранилища BLOB-объектов Azure: сохраненная политика доступа удаляется - PullRequest
0 голосов
/ 11 октября 2018

Контекст:

Я развертываю учетную запись хранения, а также один или несколько контейнеров со следующим шаблоном 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 также станет недействительным (пока не тестировался).

Вопросы:

Почему это происходит?Как я могу избежать этой проблемы и, соответственно, сохранить политики сохраненного доступа?

Спасибо

1 Ответ

0 голосов
/ 09 марта 2019

После некоторого расследования это, кажется, было разработано.При развертывании шаблонов ARM для учетных записей хранения используется операция PUT, то есть элементы, не указанные в шаблоне, удаляются.Поскольку невозможно указать политики общего доступа для контейнеров в шаблоне ARM для учетных записей хранения, существующие удаляются при повторном развертывании шаблона ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...