【发布时间】:2021-11-26 13:07:27
【问题描述】:
我们调用由 Azure Functions 托管的基于 REST 的 API,但未能实现支持 App Insights 的一致错误处理,想知道可以做些什么:
-
如果我们不处理函数的异常,那么 App Insights 报告“失败”,但服务只向调用者返回错误代码,但没有错误内容: 因此,客户端会收到 500,仅此而已。
-
如果我们处理异常并将其记录(到 AppInsights),则 App Insights 会停止报告“失败”,因此对功能级别的监控会中断。我们可以查询异常,但它们是脱离上下文的(即,我们只能通过自定义查询看到异常)并且我们不知道实际影响的是哪个函数。
如何结合这两种需求:
- 让函数失败,以便 AppInsights 报告失败(并且监视器可以发出警报)
- 向调用者返回比 500 更有意义的错误消息。
AppInsights 中的外观示例:
Exception is visible on the Exceptions tab, but the underlying operation has not failed
更新: 根据 Microsoft 的说法,App Insight 故障是未处理异常所独有的。不过,打开是否有办法至少传递错误消息。
【问题讨论】:
标签: azure-functions azure-application-insights