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

如何通过Linked Service配置BlobServiceClient实例?

通过Azure Data Factory链接服务初始化BlobServiceClient的实现方法

你提到的BlobServiceClient本身并不直接支持从Data Factory链接服务直接初始化,因为链接服务是Azure Data Factory的专属资源,不属于Azure存储SDK的范畴。要实现需求,需要分两步:先从链接服务中提取存储账户的连接凭据,再用这些凭据初始化BlobServiceClient。

步骤1:获取链接服务的连接配置

首先需要通过Azure Data Factory管理SDK读取目标链接服务的详细配置,提取其中的存储账户连接信息(比如连接字符串、SAS令牌、托管标识参数等)。

先安装所需依赖:

pip install azure-mgmt-datafactory azure-identity azure-storage-blob

步骤2:用提取的凭据初始化BlobServiceClient

根据链接服务的配置类型(连接字符串、SAS、托管标识),选择对应的方式初始化客户端,示例代码如下:

from azure.identity import DefaultAzureCredential
from azure.mgmt.datafactory import DataFactoryManagementClient
from azure.storage.blob import BlobServiceClient

# 替换为你的实际资源信息
subscription_id = "你的订阅ID"
resource_group_name = "资源组名称"
data_factory_name = "数据工厂名称"
linked_service_name = "目标链接服务名称"

# 初始化Data Factory客户端
credential = DefaultAzureCredential()
adf_client = DataFactoryManagementClient(credential, subscription_id)

# 获取链接服务配置
linked_service = adf_client.linked_services.get(resource_group_name, data_factory_name, linked_service_name)
ls_properties = linked_service.properties

# 根据链接服务类型提取凭据并初始化BlobServiceClient
if ls_properties.type == "AzureBlobStorage":
    # 场景1:链接服务使用连接字符串
    if "connectionString" in ls_properties.type_properties:
        conn_str = ls_properties.type_properties["connectionString"].value
        blob_client = BlobServiceClient.from_connection_string(conn_str)
    # 场景2:链接服务使用SAS令牌
    elif "sasUri" in ls_properties.type_properties:
        sas_uri = ls_properties.type_properties["sasUri"].value
        blob_client = BlobServiceClient.from_sas_url(sas_uri)
    # 场景3:链接服务使用托管标识
    elif "servicePrincipalId" in ls_properties.type_properties:
        account_name = ls_properties.type_properties["accountName"]
        account_url = f"https://{account_name}.blob.core.windows.net"
        blob_client = BlobServiceClient(account_url, credential=credential)

注意事项

  • 链接服务的类型不同,type_properties中的字段会有差异,比如AzureBlobStorageSas类型的链接服务,字段结构会有所不同,需要根据实际配置调整代码。
  • 运行代码的身份(本地开发用Azure CLI登录,生产环境用托管标识)需要具备读取Data Factory链接服务的权限(如Data Factory Contributor、Linked Service Reader等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:27:33