36

我有一个具有 3 个函数的函数应用程序,其中一个函数每 2 分钟触发一次。我观察到一段时间后,该功能停止被触发,但当我进入门户时重新启动。

据我了解,原因是默认情况下,“始终开启”处于关闭状态。但是,当我进入应用程序设置/常规设置时,我无法激活灰显的“开启”状态。我可以取消选中“关闭”,它似乎不会粘住或激活“开启”。

在此处输入图像描述

我错过了一些明显的东西吗?Always-On 是我的问题的解决方案,还是我应该做的其他事情?

注意:函数是用 F# 编写的;我怀疑这很重要,但我想我会提到它以防万一。

4

3 回答 3

45

此答案适用于所有 Azure Function 方案,但由 http 请求触发的方案除外。

有3个案例可以看:

  1. 您有一个在免费/共享应用程序服务计划中运行的函数应用程序:Always On 不可用,并且根本不支持这些方案。
  2. 您有一个在Basic/Standard/Premium App Service Plan中运行的 Function App :Always On 可用并且可以打开。事实上,它默认是打开的,如果你关闭它,你会在 Functions UI 中收到警告。
  3. 您有一个使用消费计划的功能应用程序:不需要 Always On,因为系统会在需要运行时唤醒您的功能。这是大多数用户推荐的方法。
于 2016-09-10T22:58:40.073 回答
5

Azure Functions 由 Azure App Service 共同管理,该服务始终限制在Basic 或以上模式(无免费或共享)

在基本或标准模式下,您可以启用 Always On 以始终保持应用程序加载。

于 2016-09-10T22:42:52.550 回答
5

如果您在免费/共享应用程序服务计划中,您可以做一个小技巧,它可以完美运行。使用像freshping.io这样的ping服务,每5秒/自定义间隔ping你的函数url,防止你的应用程序空闲。Freshping.io 为您提供 5 个免费的 ping 网址。

注意:ping url 不计入 CPU 运行时间,除非您 ping 实际功能。所以它不会影响你的时间限制。

希望这可以帮助。

于 2020-05-04T03:31:09.433 回答