ClientAuthenticationError:DefaultAzureCredential 无法从包含的凭据中检索令牌

问题描述 投票:0回答:1

我在尝试在 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

如有任何建议,我们将不胜感激。提前致谢!

azure azure-machine-learning-service
1个回答
0
投票

您遇到身份验证问题,默认情况下,

Workspace
对象使用
InteractiveLoginAuthentication
身份验证。

enter image description here

注册模型时也是如此。

因此,再次创建工作区对象,以下是您可以尝试的一些替代方案。

  1. MSI 验证

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)
  1. 交互式登录身份验证

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())

enter image description here

查看 this 笔记本,了解有关身份验证的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.