Azure ML SDK v2中使用DeviceCodeCredential加载MLTABLE时认证失败
解决mltable加载时使用DeviceCodeCredential的问题
方法一:直接传入DeviceCodeCredential实例
mltable.load方法支持通过credential参数指定自定义认证凭据,直接把你已初始化好的DeviceCodeCredential实例传进去即可:
from azure.identity import DeviceCodeCredential import mltable # 初始化你的DeviceCodeCredential credential = DeviceCodeCredential( tenant_id="你的租户ID", client_id="你的客户端ID" ) # 加载MLTABLE资产时传入credential参数 ml_table = mltable.load(f"azureml:/{data_asset.id}", credential=credential)
方法二:复用MLClient的凭据
既然你已经有可用的ml_client(用DeviceCodeCredential初始化的),可以直接提取它的凭据传入mltable:
ml_table = mltable.load(f"azureml:/{data_asset.id}", credential=ml_client._credential)
方法三:通过环境变量全局配置
如果不想每次调用都传参数,可设置环境变量让mltable自动使用DeviceCodeCredential配置:
- 设置
AZURE_TENANT_ID为你的租户ID - 设置
AZURE_CLIENT_ID为你的客户端ID
配置完成后,直接调用mltable.load即可自动使用指定的DeviceCodeCredential认证。
问题说明
mltable.load默认会尝试使用DefaultAzureCredential认证链,而非你当前MLClient使用的DeviceCodeCredential,因此需要显式指定凭据才能复用已有的令牌。
内容的提问来源于stack exchange,提问作者Paweł
相关产品推荐
相关产品推荐

