gpt4 book ai didi

python - 使用Python SDK验证 `DefaultAzureCredential()`?

转载 作者:行者123 更新时间:2023-12-02 06:14:16 27 4
gpt4 key购买 nike

使用 try/except 和 DefaultAzureCredential() 记录和处理异常的示例方法有哪些?

示例:

在 Python Azure 函数中使用 DefaultAzureCredential() 时,它会生成一些 WARNING 消息以及其中的 .get_token 方法之一凭证链成功。

我想记录哪些成功,哪些失败。

WARNING:azure.identity._internal.decorators:EnvironmentCredential.get_token failed: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.

WARNING:azure.identity._internal.decorators:ManagedIdentityCredential.get_token failed: ManagedIdentityCredential authentication unavailable, no managed identity endpoint found.

WARNING:azure.identity._internal.decorators:SharedTokenCacheCredential.get_token failed: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.

WARNING:azure.identity._internal.decorators:VisualStudioCodeCredential.get_token failed: Failed to get Azure user details from Visual Studio Code.

然后就成功了,但是没有任何消息表明哪一个成功了。在本例中,在 VS Code 中运行 .ipynb 文件中的代码段。

在生产中使用 DefaultAzureCredential() 时如何记录和处理错误?

寻找类似的例子:

try:
credentials = DefaultAzureCredential()
logging.info(f'<whichever>.get_token succeeded')
except Error1 as e1:
logging.error(f'EnvironmentCredential.get_token failed: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.', e1)
except Error2 as e2:
logging.error(f'ManagedIdentityCredential.get_token failed: ManagedIdentityCredential authentication unavailable, no managed identity endpoint found.', e2)
...<etc>

最佳答案

只是为了用更多详细信息补充已接受的答案,让我补充一下 DefaultAzureCredential 确实会记录此信息。例如,如果您启用 INFO 级别日志记录:

import logging
from azure.identity import DefaultAzureCredential

logger = logging.getLogger('azure.identity')
logger.setLevel(logging.INFO)

handler = logging.StreamHandler(stream=sys.stdout)
formatter = logging.Formatter('[%(levelname)s %(name)s] %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

您将在 DefaultAzureCredential 中看到类似以下的日志消息:

[INFO] DefaultAzureCredential - EnvironmentCredential is unavailable
[INFO] DefaultAzureCredential - ManagedIdentityCredential is unavailable
[INFO] DefaultAzureCredential - SharedTokenCacheCredential is unavailable
[INFO] DefaultAzureCredential acquired a token from VisualStudioCodeCredential

仅当 DefaultAzureCredential 实例第一次获取 token 时,您才会看到记录的失败尝试。一旦其组成凭证之一提供了 token ,它就会专门使用该凭证。因此,这个特定的 DefaultAzureCredential 将始终通过 Visual Studio Code 进行身份验证,并且每当这样做时,您都会在日志中看到此消息:

[INFO] DefaultAzureCredential acquired a token from VisualStudioCodeCredential

关于python - 使用Python SDK验证 `DefaultAzureCredential()`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64654321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com