Создание контейнера больших двоичных объектов / файлов Azure с помощью шаблона ARM.

Я ищу способ создать контейнер в хранилище BLOB-объектов и общих файловых ресурсов Azure с помощью шаблона ARM.

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

{
    "name": "[parameters('storageAccountName')]",
    "type": "Microsoft.Storage/storageAccounts",
    "location": "[resourceGroup().location]",
    "apiVersion": "[variables('storageApiVersion')]",
    "sku": {
        "name": "[variables('storageAccountType')]"
    },
    "dependsOn": [ ],
    "tags": {
      "Environment": "[parameters('Environment')]",
      "Project": "[parameters('ProjectName')]",
      "Contact": "[parameters('ContactName')]"
    },
    "kind": "Storage",
    "properties": {
      "encryption": {
        "keySource": "Microsoft.Storage",
        "services": {
              "blob": {
                "enabled": true
              }
        }
      }
    }
  }



Ответы (2)


Возможно. API REST для управления Azure теперь имеет конечные точки для контейнеров больших двоичных объектов: https://docs.microsoft.com/en-us/rest/api/storagerp/blobcontainers/create.

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

{
  "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {
    "accountName": "accountname",
    "containerName": "containername"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[variables('accountName')]",
      "apiVersion": "2018-02-01",
      "location": "westeurope",
      "kind": "BlobStorage",
      "sku": {
        "name": "Standard_LRS",
        "tier": "Standard"
      },
      "tags": {},
      "dependsOn": [],
      "properties": {
        "accessTier": "Cool"
      },
      "resources": [
        {
          "type": "blobServices/containers",
          "apiVersion": "2018-03-01-preview",
          "name": "[concat('default/', variables('containerName'))]",
          "dependsOn": [
            "[variables('accountName')]"
          ],
          "properties": {
            "publicAccess": "None"
          }
        }
      ]
    }
  ]
}
person clericc    schedule 31.07.2018
comment
Что касается конкатенированного имени контейнера: идентификаторы ресурсов в Azure состоят из пар «тип-имя-имя». Итак, в учетной записи хранения есть служба blobServices. Есть только одна служба blobService, которая называется default. И внутри этой службы blobService существует тип «контейнеры», а под ним - имя контейнера. Таким образом, тип состоит из пути к типу под учетной записью хранения, а имя состоит из пути к имени. - person clericc; 31.07.2018
comment
Можно ли создавать контейнеры в собственном задании копирования, то есть не вкладывая контейнер в качестве ресурса в учетную запись хранения? Я не могу заставить его работать. Я получаю ошибку неверной длины сегмента и не могу определить правильное соглашение об именах. - person Molotch; 18.09.2018
comment
Да, тогда тип должен быть Microsoft.Storage/storageAccounts/blobServices/containers, имя должно иметь вид ‹storageAccName› / default / ‹containerName› - person clericc; 20.09.2018
comment
У меня это не работает. Не нравится косая черта в названии контейнера. 13:59:06 - 13:59:00 PM - Ресурс Microsoft.Storage/storageAccounts/blobServices/containers 'testcslstandard / default / testContainerName' не удалось с сообщением '{13:59:06 - ошибка: {13:59:06 - code: ContainerOperationFailure, 13:59:06 - сообщение: Указанное имя ресурса содержит недопустимые символы} ' - person Geekn; 25.01.2019
comment
@Geekn: docs.microsoft.com/en-us/rest/api/storageservices/: все буквы в имени контейнера должны быть строчными. - person clericc; 28.01.2019
comment
@clericc Итак, это сработало для службы BLOB-объектов (спасибо, что указали на это). Когда я пытаюсь создать общую папку в файловой службе, появляется сообщение HttpResourceNotFound (я использовал Microsoft.Storage/storageAccounts/fileServices/containers). Какую документацию вы видели, в которой указано имя типа (возможно, я ошибаюсь). - person Geekn; 29.01.2019
comment
файловыми службами невозможно управлять через management.azure.com afaik. По крайней мере, ссылка на REST ничего не дает мне о файловых службах. Так что ты не попадешь сюда, я боюсь - person clericc; 30.01.2019

Нет, вы не можете этого сделать, прочтите этот отзыв.

теперь вы можете создавать контейнеры. https://stackoverflow.com/a/51608344/6067741

person 4c74356b41    schedule 06.12.2016
comment
Раньше это было невозможно, но теперь это возможно. Проверьте ответ @clericc здесь. Возможно, стоит пересмотреть этот ответ. - person Jan_V; 09.08.2018
comment
У меня более 1000 ответов на SO, вы действительно ожидаете, что я буду регулярно пересматривать каждый из них? вы знаете, что можете просто отредактировать ответ. - person 4c74356b41; 09.08.2018
comment
Ой, извините, не подумал об этом. Но я вижу, вы его уже редактировали! - person Jan_V; 09.08.2018