我在尝试在 Azure ML 工作区中注册模型时遇到错误。错误发生在以下代码片段中:
model = Model.register(
model_path="***",
model_name="***",
tags={},
description="***",
workspace=***
)
我收到的错误消息是:
ClientAuthenticationError:DefaultAzureCredential 无法检索 来自包含的凭据的令牌。尝试的凭据: EnvironmentCredential:环境凭证认证 不可用。环境变量未完全配置。访问 https://aka.ms/azsdk/python/identity/environmentcredential/troubleshoot 来解决此问题。 ManagedIdentityCredential:期待 值:第 1 行第 1 列(字符 0) 要缓解此问题,请参阅 此处的故障排除指南 https://aka.ms/azsdk/python/identity/defaultazurecredential/troubleshoot。
如有任何建议,我们将不胜感激。提前致谢!
您遇到身份验证问题,默认情况下,
Workspace
对象使用InteractiveLoginAuthentication
身份验证。
注册模型时也是如此。
因此,再次创建工作区对象,以下是您可以尝试的一些替代方案。
from azureml.core.authentication import MsiAuthentication
msi_auth = MsiAuthentication()
ws = Workspace(subscription_id="my-subscription-id",
resource_group="my-ml-rg",
workspace_name="my-ml-workspace",
auth=msi_auth)
from azureml.core.authentication import InteractiveLoginAuthentication
interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
ws = Workspace(subscription_id="my-subscription-id",
resource_group="my-ml-rg",
workspace_name="my-ml-workspace",
auth=interactive_auth)
当您运行以下任何代码时,您应该会获得令牌。
from azureml.core.authentication import MsiAuthentication,InteractiveLoginAuthentication
print(MsiAuthentication().get_token())
print(InteractiveLoginAuthentication().get_token())
查看 this 笔记本,了解有关身份验证的更多信息。