14

我在生产中运行了计时器触发的 Azure 函数,但现在我想在函数失败时收到通知。

就我而言,访问各种连接的服务可能会导致崩溃,并且有很多问题需要解决。崩溃是我需要通知的错误类型。

当函数确实失败时,日志条目指示失败,所以我想知道系统中是否有一个挂钩可以让我让系统生成通知。

例如,我知道 blob 和队列绑定支持创建毒队列条目,但计时器触发器绑定并没有说明任何关于这种性质的触发器输出。

我看到函数可以将它们的 $return 状态作为输入传递给其他函数,但是文档中没有深入解释该操作。另外,在这种情况下,我需要编写另一个函数来处理错误状态,并且我正在寻找内置的东西。

我已就此向@AzureSupport 进行过询问,但他们的回答与 Azure Functions 无关,而是将我介绍给 DLL 通知挂钩,然后建议我在 uservoice 上归档。

我敢肯定这里一定有人实施了某种错误状态通知。我更喜欢不需要代码的解决方案。

4

5 回答 5

7

监视和警告故障的推荐方法是使用现在与 Azure Functions 完全集成的 AppInsights

https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure-functions-application-insights/

由于 AppInsights 中提供了所有日志,因此可以轻松监控故障并根据您自己的条件设置警报。

但是,如果您只关心警报而不关心监控等,您可以改用 Azure Monitor:https ://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-get-started

于 2017-05-31T19:28:55.813 回答
2

当函数确实失败时,日志条目指示失败,所以我想知道系统中是否有一个挂钩可以让我让系统生成通知。

...

我更喜欢不需要代码的解决方案。

这是一个零代码解决方案:

我之前曾在此主题上戳过@AzureFunctions,建议的响应是使用 Application Insights。它可以处理失败时的警报,也可以使用 webhook。

请参阅Azure Functions App-Insights文档,了解如何将函数应用链接到 App Insights。然后设置您想要的任何警报。

于 2017-05-08T22:43:15.717 回答
1

不幸的是,这个钩子不存在。

您可以从计时器触发器切换到队列触发器吗?

您可以获得重试(如果需要),并且在指定的尝试次数后,消息将被发送到有害队列。

要安排执行,您可以添加具有可见性超时的队列消息以匹配您的计划。

于 2017-05-05T16:53:51.097 回答
0

为了获得失败警报,您有两种选择:

  1. 一个计时器触发器,然后扫描执行日志(通过 SFTP)以查找故障。
  2. 将整个函数包装在一个 try/catch 块中,并在 catch 块中写几行以向您发送一封包含错误详细信息的电子邮件。

希望这可以帮助。

于 2017-05-07T21:36:41.803 回答
0

无代码:

  1. 转到您的 azure 云帐户

  2. 从菜单中选择监视器

  3. 然后选择添加新规则

  4. 然后选择您的条件、操作并添加警报详细信息。

于 2019-10-17T09:45:57.373 回答