首页 > 解决方案 > 无法使用 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 分钟后,我的容器被创建了,所以我可能遗漏了有关正在创建的上下文的一些内容??)

我已经发布(下面的链接也是)一个关于不同上下文的问题被显示为引用命名空间 Microsoft.WindowsAzure.Commands.Common.Storage 的 LazyStorage 构造函数,但是 cmdlet 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

注意:我已经尝试在 ps 脚本中的所有命令之间添加等待事件,但是没有用。

注意:我尝试在 Azure 门户控制台的 Powershell 中使用带有 Azure CLI 的命令,并遇到类似的问题,并出现以下错误。

在此处输入图像描述

标签: azurepowershellazure-storageazure-storage-account

解决方案


正如您所指出的,存储帐户是在您请求它们时异步创建的,因此问题似乎与等待帐户有关。也许不使用脚本,您可以使用包含帐户和容器的 ARM 模板部署存储帐户?

另一种选择可能是使用 REST API 创建存储帐户,并监视帐户的“provisioningState”直到它“成功”,然后再继续容器请求?

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


推荐阅读