如何在Azure API Management策略执行时忽略log-to-eventhub相关错误
解决方案
你可以通过log-to-eventhub策略内置的ignore-error属性实现需求,该属性专门用于控制日志类策略执行失败时是否中断主请求流程,配置后即使EventHub异常也不会阻断正常API请求处理。
具体配置修改方式
将你当前的全局log-to-eventhub策略添加ignore-error="true"属性即可,示例如下:
<log-to-eventhub logger-id="你的eventhub日志记录器ID" ignore-error="true"> @(你原来的请求元数据构造表达式) </log-to-eventhub>
补充说明
ignore-error属性的有效值为true/false,默认值为false,这也是你之前EventHub故障后直接触发全局500错误的原因- 如果你需要降低临时网络波动导致的日志丢失概率,也可以在
log-to-eventhub外层套retry策略搭配ignore-error使用,全程不会影响主请求流程,示例如下:
<retry condition="@(context.LastError != null && context.LastError.Source == "log-to-eventhub")" count="2" interval="1" first-fast-retry="true"> <log-to-eventhub logger-id="你的eventhub日志记录器ID" ignore-error="true"> @(你原来的请求元数据构造表达式) </log-to-eventhub> </retry>
- 以上配置完全不需要使用
on-error策略段,符合你的限制要求
内容的提问来源于stack exchange,提问作者Pankaj More
相关产品推荐
相关产品推荐

