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

Linux虚拟机通过Python SDK连接Azure私有Blob失败求助

问题:Linux虚拟机通过Python SDK连接同虚拟网络的私有Blob存储失败

从同一虚拟网络内的Linux虚拟机,使用Python SDK连接私有Blob存储,代码如下:

from azure.storage.blob import ContainerClient,BlobServiceClient
service_client = BlobServiceClient(url,sas_token)
container_client = service_client.get_container_client(container_name)
blobs = container_client.list_blobs(name_starts_with='Inbound/Canvas/Extraction/')
for blob in blobs:
    # split filename and the path
    blob_name = blob.name.rsplit('/', 1)
    print(blob_name)

执行后出现以下错误:

azure.core.exceptions.ServiceRequestError: <urllib3.connection.HTTPSConnection object at 0x7fbbf7de5070>: Failed to establish a new connection: [Errno -2] Name or service not known

排查与解决步骤

  • 检查私有端点配置:确认已为Blob存储账户创建私有端点,且端点的虚拟网络、子网与Linux虚拟机完全匹配;同时确认privatelink.blob.core.windows.net私有DNS区域已关联到该虚拟网络,确保域名解析指向私有IP。
  • 验证域名解析:在Linux虚拟机上执行nslookup <你的Blob账户名>.blob.core.windows.net,查看返回的IP是否为私有端点的IP。若解析失败,检查虚拟机DNS服务器配置,确保能访问私有DNS区域。
  • 确认URL格式:BlobServiceClient初始化时的url必须使用标准格式https://<账户名>.blob.core.windows.net,不要使用自定义域名,保证私有端点能匹配解析。
  • 测试网络连通性:在虚拟机上运行curl -v https://<账户名>.blob.core.windows.net,检查是否能建立HTTPS连接。若失败,排查网络安全组(NSG)规则:确保虚拟机出站允许443端口流量,私有端点入站允许443端口流量。
  • 验证SAS令牌:确认SAS令牌包含list权限(即权限字符包含l),且令牌未过期,目标容器名称与代码中container_name一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:50:27