Python 如果超时超过 10 分钟,Azure Functions 发出警报

Python Azure Functions alert if timeout greater than 10 minutes

我有一个 Azure Functions 应用 运行 在计时器触发器上,我不希望超过 10 分钟的超时限制,但我希望在不太可能发生的情况下收到警报应用程序运行时间超过 10 分钟。这可以在 Application Insights 中执行吗?我没有看到此用例的警报触发器。在 Application Insights 中,智能检测设置中有一个“长依赖持续时间”,我可以在其中添加电子邮件,并且已经设置了一个“故障异常”警报规则。如果某个函数 运行 超过 10 分钟,这些中的任何一个都会提醒我吗?

如果单个函数实例遇到任何类型的异常,我还想要一个警报。我可以在 Python 代码中自己设置它,方法是将我的代码包装在 try except 块中,如果捕获到异常则通过电子邮件发送,但如果这在 Application Insights 中可行的话会更容易。

您可以转到您的 host.json 函数应用程序,

并像这样更改它:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[1.*, 2.0.0)"
  },
  "functionTimeout": "00:10:00"
}

然后,如果您的实例 运行 超过 10 分钟,它将抛出错误。

因此,您可以转到函数的 Application Insight,然后 select 如下所示:

您可以将操作类型设置为Email/EMS并提供您的电子邮件地址,然后您将在时间触发超时时收到一封电子邮件。