You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python SDK创建Azure存储账户后创建Blob容器遇ResourceNotFound错误

解决Azure存储账户创建后Blob容器创建时的ResourceNotFound错误

我之前也碰到过一模一样的问题,这个错误大概率是存储账户后台初始化未完成,或者参数配置出了问题。下面给你几个排查和解决的方向:

1. 给存储账户留足生效时间

Azure存储账户创建后,后台要完成DNS注册、资源配置等一系列操作,这个过程通常需要2-5分钟(高峰时段可能更久)。如果刚创建完账户就立刻调用创建容器的API,十有八九会碰到这个资源找不到的错误。

解决办法是给代码加个重试逻辑,用指数退避策略来应对延迟:

from tenacity import retry, stop_after_attempt, wait_exponential

@retry(stop=stop_after_attempt(5), wait=wait_exponential(multiplier=1, min=2, max=10))
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 = f"container-{version}"
        account.create_container(container_name)
        print(f"容器 {container_name} 创建成功")
    except Exception as e:
        print(f"创建容器失败,重试中:{str(e)}")
        raise

2. 校验存储账户名称和密钥的正确性

  • 确认storage_account_name完全无误:Azure存储账户名是全局唯一的,只能用小写字母和数字,别出现拼写错误。
  • 确认storage_account_key.value是有效的访问密钥:可以去Azure门户的存储账户→「访问密钥」里复制主密钥或辅助密钥,注意别带多余的空格或换行符。

你可以先做个简单的连接测试,验证账户信息是否正确:

account = BlockBlobService(account_name=storage_account_name, account_key=storage_account_key.value)
# 尝试列出容器,检查连接是否正常
containers = account.list_containers()
print(f"当前存储账户下的容器数量:{len(list(containers))}")

3. 指定正确的存储终结点

如果你的存储账户是在特殊区域(比如中国区Azure),或者配置了私有链接,需要在创建BlockBlobService时指定对应的终结点后缀:
比如中国区的终结点后缀是core.chinacloudapi.cn:

account = BlockBlobService(
    account_name=storage_account_name,
    account_key=storage_account_key.value,
    endpoint_suffix="core.chinacloudapi.cn"
)

如果是私有链接场景,要指定custom_domain参数指向你的私有终结点地址。

4. 检查存储账户的状态

去Azure门户里看看存储账户的状态,确认它处于「已部署」状态,没有报错或警告。如果账户还在「创建中」或者创建失败,得先解决账户本身的问题。


内容的提问来源于stack exchange,提问作者Rahul Goud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:51:18