如何使用Python在Azure中创建Blob容器及报错排查
Azure Blob Python创建容器报错解决方案
错误根因
报错的核心原因是 os.getenv('AZURE_STORAGE_CONNECTION_STRING') 没有读取到对应的环境变量,返回了None值,后续SDK尝试对None执行rstrip方法就抛出了属性错误。你代码里打印的“Connection established to Azure storage account from the Python App”是误报,这行代码在类加载的时候就会执行,并没有实际验证连接是否有效。
解决步骤
- 第一步:获取正确的存储账户连接字符串
登录Azure门户,进入你的存储账户,左侧菜单找到「安全 + 网络」分类下的「访问密钥」,复制任意一组密钥对应的连接字符串。 - 第二步:配置环境变量
根据你使用的操作系统,执行对应命令临时配置环境变量(仅当前终端会话生效):- Windows(cmd):
set AZURE_STORAGE_CONNECTION_STRING="你复制的连接字符串" - Windows(PowerShell):
$env:AZURE_STORAGE_CONNECTION_STRING="你复制的连接字符串" - Linux/macOS:
export AZURE_STORAGE_CONNECTION_STRING="你复制的连接字符串"
如果要永久生效,Windows可以在系统环境变量里新增该变量,Linux/macOS可以把上面的export命令写入~/.bashrc或者~/.zshrc文件。
- Windows(cmd):
- 第三步:验证配置生效
配置完成后重启你运行代码的终端或者IDE,可以在代码里加一行打印确认变量是否读取成功:print(self.connection_str),如果输出不是None就是配置正常。 - 临时测试方案
如果只是想先验证代码逻辑是否正常,可以先把连接字符串直接赋值给变量,替换掉connection_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')这行,改为:
注意生产环境不要硬编码密钥,避免泄露风险。connection_str = "你复制的完整连接字符串"
代码优化建议
你可以把实例化BlobServiceClient的逻辑也移入try块内,才能捕获到连接相关的异常,调整后代码如下:
def create_container_sample(self): try: blob_service_client = BlobServiceClient.from_connection_string(self.connection_str) container_client = blob_service_client.get_container_client("mycontainer") container_client.create_container() list_response = blob_service_client.list_containers() except Exception as ex: print('Exception:') print(ex)
内容的提问来源于stack exchange,提问作者aravindh chimtamneedi
相关产品推荐
相关产品推荐

