我在生产中运行了定时器触发的Azure功能,但现在我希望在功能失败时收到通知。
在我的情况下,访问各种连接的服务可能会导致崩溃,还有很多可以排除故障。崩溃是我需要通知的错误类型。
当函数失败时,日志条目指示失败,所以我想知道系统中是否存在允许我使系统生成通知的挂钩。
我知道blob和队列绑定例如支持创建毒物队列条目,但是计时器触发器绑定并没有说明任何有关此类触发器输出的信息。
我看到函数可以将其$ return状态作为其他函数的输入传递,但该操作在文档中没有深入解释。此外,在这种情况下,我需要编写另一个函数来处理错误状态,我正在寻找内置的东西。
我已经向@AzureSupport询问过,但他们的回答与Azure Functions无关,而是将我引用到DLL通知挂钩,然后在uservoice上推荐我的文件。
我确定这里必须有人实施了某种错误状态通知。我更喜欢不需要代码的解决方案。
答案 0 :(得分:2)
当函数失败时,日志条目指示失败,所以我想知道系统中是否存在允许我使系统生成通知的挂钩。
...
我更喜欢不需要代码的解决方案。
这是一个零代码解决方案:
在此主题之前,我曾在@AzureFunctions上找过一次,建议的回答是使用Application Insights。它可以在失败时处理警报,也可以使用webhooks。
请参阅Azure Functions App-Insights文档,了解如何将您的功能应用与App Insights相关联。然后设置您想要的任何警报。
答案 1 :(得分:2)
监控和警告故障的推荐方法是使用现在与Azure功能完全集成的AppInsights
https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure-functions-application-insights/
由于AppInsights中的所有日志都可用,因此可以根据您自己的标准轻松监控故障和设置警报。
但是,如果您只关心警报而不关心监控等,则可以使用Azure监视器:https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-get-started
答案 2 :(得分:1)
不幸的是,这个钩子并不存在。
您可以从定时器触发器切换到队列触发器吗?
您可以进行重试(如果需要),并在指定的尝试次数后将消息发送到毒性队列。
要计划执行,您可以添加具有可见性超时的队列消息,以符合您的计划。
答案 3 :(得分:0)
为了获得失败警报,您有两种选择:
希望这有帮助。
答案 4 :(得分:0)
没有代码:
转到您的Azure云帐户
从菜单中选择“监视器”
然后选择“添加新规则”
然后选择条件,操作并添加警报详细信息。