Невозможно создать новый контейнер с помощью New-AzStorageContainer

Я использую приведенный ниже шаблон для создания контейнера путем передачи переменных с помощью powershell, однако, похоже, есть некоторая проблема с создаваемым контекстом, которая не позволяет мне создать контейнер и показывает 404 (указанный ресурс не существует).

$ storage = New-AzStorageAccount -ResourceGroupName $ RESOURCE_GROUP_NAME -Location $ LOCATION -Name $ TF_STATE_STORAGE_ACCOUNT_NAME -SkuName Standard_LRS

$ ctx = $ storage.Context

New-AzStorageContainer -Name $ TF_STATE_CONTAINER_NAME -Context $ ctx

введите здесь описание изображения

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

Я опубликовал (также ссылка ниже) вопрос о том, что другой контекст отображается как ссылка на конструктор LazyStorage пространства имен Microsoft.WindowsAzure.Commands.Common.Storage, однако командлет New-AzStorageContainer принимает тип Microsoft.Azure.Commands.Common .Authentication.Abstractions.IStorageContext как интерфейс, который должен получать класс AzureStorageContext, а не класс LazyAzureStorageContext.

https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainer?view=azps-5.5.0

Вопрос размещен по ссылке:

https://docs.microsoft.com/en-us/answers/questions/289096/new-azstoragecontainer-command-not-accepting-valid.html?childToView=290003#comment-290003

Примечание: я также пробовал вставлять Wait-Events между всеми командами в скрипте ps, но бесполезно.

Примечание: я пробовал использовать команды с Azure CLI в powershell из консоли портала Azure и столкнулся с аналогичной проблемой с ошибкой ниже.

введите здесь описание изображения


person chetansir    schedule 26.02.2021    source источник


Ответы (1)


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

Другой вариант может заключаться в использовании REST API для создания учетной записи хранения и мониторинг «ProvisioningState» учетной записи до тех пор, пока он не станет «Успешно», прежде чем продолжить выполнение запроса контейнера?

https://docs.microsoft.com/en-us/rest/api/storagerp/storage-sample-create-account

person Matthew    schedule 26.02.2021
comment
Я уже применил Wait-Events через свой сценарий PowerShell для создания контекста учетной записи хранения. Контекст также сохраняется, однако New-AzContainer каким-то образом не может использовать тот же контекст для создания контейнера, что также кажется странным со стороны ARM. Необходимо проверить, сталкивается ли командлет, вызывающий интерфейс Icontext, с некоторыми проблемами со стороны API диспетчера ресурсов Azure или я делаю что-то неправильно. - person chetansir; 01.03.2021