Azure MSI 身份验证的瞬态错误处理
Transient error handling for Azure MSI authentication
托管服务身份 (MSI) 身份验证是否存在短暂且值得重试的错误?
通读实现,我可以看到 HttpRequestException 和 Exception 被框架吸收并作为 AzureServiceTokenProviderException 重新抛出,没有内部异常。
我想知道(如果可能出现任何暂时性错误),我是否需要检查异常消息以提取消息中嵌入的 http 状态代码并重新抛出一个例如我自己的 AzureServiceTokenProviderTransientException 在我的重试逻辑中捕获它。
我最初的问题是 MSI 身份验证是否有任何已知的暂时性异常,其次是否有任何内置的重试逻辑或推荐做法?
记录了 MSI returns 的错误代码 here。
AzureServiceTokenProvider 确实包含 HTTP 响应不成功的情况的异常详细信息,因此异常中将包含 404、429、500 等错误代码以及异常消息。吸收的异常是在未收到 HTTP 响应时,例如当没有 MSI 端点时。相关代码为here.
MSI 文档 here. I have added a GitHub issue 中推荐了一种重试逻辑,以在 App Authentication 库中实现此重试逻辑。
托管服务身份 (MSI) 身份验证是否存在短暂且值得重试的错误?
通读实现,我可以看到 HttpRequestException 和 Exception 被框架吸收并作为 AzureServiceTokenProviderException 重新抛出,没有内部异常。
我想知道(如果可能出现任何暂时性错误),我是否需要检查异常消息以提取消息中嵌入的 http 状态代码并重新抛出一个例如我自己的 AzureServiceTokenProviderTransientException 在我的重试逻辑中捕获它。
我最初的问题是 MSI 身份验证是否有任何已知的暂时性异常,其次是否有任何内置的重试逻辑或推荐做法?
记录了 MSI returns 的错误代码 here。
AzureServiceTokenProvider 确实包含 HTTP 响应不成功的情况的异常详细信息,因此异常中将包含 404、429、500 等错误代码以及异常消息。吸收的异常是在未收到 HTTP 响应时,例如当没有 MSI 端点时。相关代码为here.
MSI 文档 here. I have added a GitHub issue 中推荐了一种重试逻辑,以在 App Authentication 库中实现此重试逻辑。