【发布时间】:2021-11-22 11:19:54
【问题描述】:
我有一个az cli 脚本来为我们的应用程序及其数据创建资源,我们经常使用它来拆除和重建我们的开发环境。
最近这部分停止工作,即使我们没有更改脚本。具体来说,我们这样做:
az storage account create -g <my-rg-name> --name <my-storage-account-name> --sku Standard_RAGRS --kind StorageV2 --hns --min-tls-version TLS1_2 --access-tier Hot
紧随其后
az storage container create --auth-mode login -g <my-rg-name> --account-name <my-storage-account-name> --name documents --public-access off
我最后一次成功运行它是在 9 月 15 日。下次我尝试是 9 月 27 日,但失败了,此后一直失败。
创建存储容器时的错误信息包括:
azure.common.AzureException: HTTPSConnectionPool(host='<my-account-name>.blob.core.windows.net', port=443):
Max retries exceeded with url: /documents?restype=container (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x04D38928>:
Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
所以这里很有趣 - 它正在尝试 <my-account-name>.blob.core.windows.net 但实际上如果我查看新创建的存储帐户上的端点,它们是:
"primaryEndpoints": {
"blob": "https://<my-account-name>.z47.blob.storage.azure.net/",
"dfs": "https://<my-account-name>.z47.dfs.storage.azure.net/",
"file": "https://<my-account-name>.z47.file.storage.azure.net/",
"internetEndpoints": null,
"microsoftEndpoints": null,
"queue": "https://<my-account-name>.z47.queue.storage.azure.net/",
"table": "https://<my-account-name>.z47.table.storage.azure.net/",
"web": "https://<my-account-name>.z47.web.storage.azure.net/"
},
所以我们期待“xxx.blob.core.windows.net”,我们得到“xxx.z47.blob.storage.azure.net”。 这可能很好,我想我们可以查询该名称并使用它 - 但我不能轻易修复 az cli,而且他们对 blob.core.windows 抱有强烈期望的事实。 net 域名的存在让我觉得很多其他尝试使用它的东西都会被破坏(我消耗存储帐户的 ADF 管道肯定是 - 但也许我会修复它们以应对不同的url 如果仅此而已 - 但我怀疑这是不正常的,想了解原因)。
我已经确认它不是 az cli 特定的 - 如果我在门户中创建存储帐户,我们仍然会获得非标准端点。所以它在我们的订阅/资源组中,但我只是不知道它为什么会这样或如何处理它。 当然,微软的文档明确规定我们将获得一个 blob.core.windows.net 端点(例如https://docs.microsoft.com/en-us/azure/storage/common/storage-account-overview)。
有谁知道什么会导致 Azure 出现这种行为?
【问题讨论】:
-
@GauravMantri 通过门户获得相同的结果。这在我的公司客户的订阅中。如果我去个人订阅并创建一个新的 RG 和存储帐户,我会得到正常的行为。
-
az cli 版本为 2.28.0。我在星期一更新了它,看看是不是这个问题!
-
在这种情况下,我建议您联系 Azure 支持。通常你会看到像
z47这样的东西被嵌入到端点中,仅用于静态网站端点。
标签: azure command-line-interface azure-storage