托管服务身份(MSI)身份验证是否存在短暂且值得重试的错误?
通读实现,我可以看到HttpRequestException和Exception被框架吸收,并重新释放为AzureServiceTokenProviderException,而没有内部异常。
我想知道(是否有可能出现任何暂时性错误),是否需要检查异常消息以提取消息中的嵌入式http状态代码并重新抛出例如。我自己的AzureServiceTokenProvider 瞬态在我的重试逻辑中捕获它的异常。
我最初的问题是MSI身份验证是否存在任何已知的瞬态异常,其次,是否存在任何内置的重试逻辑或推荐的做法?
答案 0 :(得分:2)
MSI返回的错误代码已记录在here中。
AzureServiceTokenProvider确实包含HTTP响应不成功的情况下的异常详细信息,因此像404、429、500之类的错误代码将与异常消息一起包含在异常中。吸收的异常是未收到HTTP响应时,例如没有MSI端点时。相关代码为here。
MSI文档here中建议使用重试逻辑。我添加了GitHub issue来在App Authentication库中实现此重试逻辑。