eri*_*ine 4 python exception azure
使用 try/except 和 记录和处理异常的一些示例方法有哪些DefaultAzureCredential()?
例子:
当DefaultAzureCredential()在 Python Azure 函数中使用时,它会生成一些消息,并且凭证链中的方法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.
Run Code Online (Sandbox Code Playgroud)
然后就成功了,但是没有任何消息表明哪一个成功了。在本例中,在 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>
Run Code Online (Sandbox Code Playgroud)
只是为了用更多详细信息补充已接受的答案,让我添加一下,它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)
Run Code Online (Sandbox Code Playgroud)
您将看到来自以下位置的日志消息DefaultAzureCredential:
[INFO] DefaultAzureCredential - EnvironmentCredential is unavailable
[INFO] DefaultAzureCredential - ManagedIdentityCredential is unavailable
[INFO] DefaultAzureCredential - SharedTokenCacheCredential is unavailable
[INFO] DefaultAzureCredential acquired a token from VisualStudioCodeCredential
Run Code Online (Sandbox Code Playgroud)
仅当实例第一次DefaultAzureCredential获取令牌时,您才会看到记录的失败尝试。一旦其组成凭证之一提供了令牌,它就会专门使用该凭证。因此,此特定项DefaultAzureCredential将始终通过 Visual Studio Code 进行身份验证,并且在日志中,只要这样做,您就会看到此消息:
[INFO] DefaultAzureCredential acquired a token from VisualStudioCodeCredential
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10230 次 |
| 最近记录: |