【问题标题】:Azure Create ContainerAzure 创建容器
【发布时间】:2018-09-05 04:37:52
【问题描述】:

在继续创建存储 blob 容器时使用 Python SDK 创建 Azure 存储帐户后,会引发以下错误: ResourceNotFound指定的资源不存在。 请求 ID:508e8df1-301e-004b-224e-c5feb1000000 时间:2018-03-26T22:03:46.0941011Z

代码sn-p:

def create_blob_container(self, storage_account_name, storage_account_key, version):
    try:
        account = BlockBlobService(account_name = storage_account_name, account_key = storage_account_key.value)          
        container_name = "dummy container"
        container = account.create_container(container_name)
        if container:
            print 'Container %s created' %(container_name)
        else:
            print 'Container %s exists' %(container_name)
    except Exception as e:
        print e

有人知道怎么做吗?

P.S.:我正在等待存储帐户的配置状态成功,然后继续创建容器。

非常感谢任何帮助。

【问题讨论】:

  • 您的容器名称中有空格吗?我认为容器名称中不允许有空格。
  • Container names 必须全部小写,不能有空格,并且不能超过 63 个字符。检查您的情况是否所有这些。
  • 另外,存储帐户名称具有 similar restrictions 并且必须介于 3 到 24 个字符之间并且是全局唯一的。 IE。如果有人已经使用“mystorage” - 您将无法创建相同的帐户
  • 容器名称和存储帐户名称均有效。 @托马斯
  • 你使用的是哪个版本的puthon sdk?

标签: python azure azure-storage azure-blob-storage


【解决方案1】:

首先,正如@Thomas 和@trailmax 在评论中提到的容器名称和blob 名称需要遵循naming rules。您的示例代码中的"dummy container" 肯定不符合规则。会抛出异常:

azure.common.AzureHttpError:指定的资源名称包含 无效字符。错误代码:InvalidResourceName

然后我测试你的代码,它对我很有效。

from azure.storage.blob import (
    BlockBlobService,
    ContainerPermissions,
)

accountName = "***"
accountKey = "***"
containerName = "test"

account = BlockBlobService(account_name = accountName, account_key = accountKey)
container = account.create_container(containerName)
if container:
    print 'Container %s created' %(containerName)
else:
        print 'Container %s exists' %(containerName)

我建议您检查您的request client 是否有权在存储帐户中创建资源。如果没有创建权限,会抛出上述异常。

希望对你有所帮助。

【讨论】:

  • 感谢您的评论。容器名称 - “虚拟容器”是我提供的示例,实际上我使用的实际容器名称是“1724-container”。我的请求客户端拥有所有权限。问题是它不一致。有时它会起作用,有时它会抛出该错误。
【解决方案2】:

刚刚与 Microsoft Azure 团队进行了交谈,显然他们正面临与存储帐户相关的网络问题。对我来说,当我尝试创建一个容器时,它总是失败,但对于我的一位同事来说,他得到的结果好坏参半;有时它会在 15 秒内完成,有时它需要长达 10 分钟,而且大多数时候它正在救助。

这可能是怎么回事 - 他们明天会回复我们更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-08
    • 2022-11-10
    • 2023-03-12
    • 1970-01-01
    • 2019-02-03
    • 2016-08-31
    • 2020-09-15
    • 2013-02-23
    相关资源
    最近更新 更多