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

调用MLClient连接Blob存储报错:BlobServiceClient无_to_rest_object属性

问题原因与解决方案

错误原因

MLClient.connections.create_or_update()方法要求传入WorkspaceConnection类型的对象,而非Azure Storage SDK中的BlobServiceClient。报错中的_to_rest_object()是WorkspaceConnection类的内部方法,BlobServiceClient不存在该属性,因此触发AttributeError。

无需BlobServiceClient的实现方式

直接使用Azure ML SDK的WorkspaceConnection类即可创建Blob存储连接,以下是两种常用实现:

方式1:使用存储账户连接字符串

from azure.ai.ml.entities import WorkspaceConnection, WorkspaceConnectionProperties, WorkspaceConnectionPropertiesAuthType

# 构建连接属性
connection_properties = WorkspaceConnectionProperties(
    target=account_url,  # 格式示例:"https://<存储账户名>.blob.core.windows.net"
    auth_type=WorkspaceConnectionPropertiesAuthType.ACCOUNT_KEY,
    credentials={"connection_string": "<你的存储账户连接字符串>"}
)

# 创建WorkspaceConnection对象
blob_connection = WorkspaceConnection(
    name="<自定义连接名称>",
    type="azure_blob",
    properties=connection_properties
)

# 执行创建/更新操作
client.connections.create_or_update(blob_connection)

方式2:使用Azure AD凭据(如DefaultAzureCredential)

from azure.ai.ml.entities import WorkspaceConnection, WorkspaceConnectionProperties, WorkspaceConnectionPropertiesAuthType

connection_properties = WorkspaceConnectionProperties(
    target=account_url,
    auth_type=WorkspaceConnectionPropertiesAuthType.MSI,  # 根据实际凭据类型调整,如SERVICE_PRINCIPAL
    credentials={
        "client_id": "<客户端ID>",  # 使用服务主体时需要,MSI模式可省略
        "tenant_id": "<租户ID>"
    }
)

blob_connection = WorkspaceConnection(
    name="<自定义连接名称>",
    type="azure_blob",
    properties=connection_properties
)

client.connections.create_or_update(blob_connection)

注意事项

  • <自定义连接名称>需保证在Azure ML工作区内唯一
  • 凭据参数需匹配实际认证方式:账户密钥模式传connection_string;MSI/服务主体模式传入对应身份信息
  • 可通过client.connections.get("<连接名称>")验证连接是否创建成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:32:03