azure - 无法使用 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
问题发布链接:
注意:我已经尝试在 ps 脚本中的所有命令之间添加等待事件,但是没有用。
注意:我尝试在 Azure 门户控制台的 Powershell 中使用带有 Azure CLI 的命令,并遇到类似的问题,并出现以下错误。
解决方案
正如您所指出的,存储帐户是在您请求它们时异步创建的,因此问题似乎与等待帐户有关。也许不使用脚本,您可以使用包含帐户和容器的 ARM 模板部署存储帐户?
另一种选择可能是使用 REST API 创建存储帐户,并监视帐户的“provisioningState”直到它“成功”,然后再继续容器请求?
https://docs.microsoft.com/en-us/rest/api/storagerp/storage-sample-create-account
推荐阅读
- android - 在构建期间从 gradle 插件禁用任务
- php - 无法解码 JWT 令牌 PHP
- python - Matplotlib 找不到字体
- c - 如何创建一个二维数组来存储从 C 中的 .txt 文件扫描的单词集合?
- c# - 如何将 T 转换为特定对象
- pytorch - 如何找到torch.solve的源代码?
- mongodb - 如何填充 Mongooese 数组中的字段?
- c++ - OpenCV Mat 矩阵和 Eigen 矩阵之间的数据不匹配
- django - React 前端的 Rest-framework ID 问题以“颜色是,颜色否”模式显示数据
- html - Vuejs-在当前页面中POST请求后获取对象ID