我如何开启"永远在线"用于Azure功能?

时间:2016-09-10 21:53:32

标签: f# azure-functions timer-trigger

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

据我了解,原因是默认情况下," Always On"被关闭了。但是,当我进入应用程序设置/常规设置时,我无法激活"开"状态,灰色。我可以取消检查"关闭",它似乎没有坚持或激活" On"。

enter image description here

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

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

3 个答案:

答案 0 :(得分:30)

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

有3个案例要看:

  1. 您有一个在免费/共享应用服务计划中运行的功能应用程序:Always On不可用,并且这些方案根本不受支持。
  2. 您有一个在基本/标准/高级应用服务计划中运行的功能应用程序:始终开启并且可以打开。实际上它默认处于启用状态,如果您将其关闭,您将在功能UI中收到警告。
  3. 您有一个使用消费计划的功能应用程序:不需要Always On,因为系统负责在需要运行时唤醒您的功能。这是大多数用户推荐的方法。

答案 1 :(得分:4)

Azure应用服务一起管理Azure功能,它始终限制Basic or above模式(不免费或共享)

  

在“基本”或“标准”模式下,您可以启用“始终开启”以始终加载应用。

答案 2 :(得分:2)

如果您处于免费/共享的应用程序服务计划中,则可以进行一次小型破解,并且效果很好。使用像freshping.io这样的ping服务,该服务每5秒/自定义间隔ping您的功能网址,以防止您的应用程序处于空闲状态。 Freshping.io为您提供了5个免费的ping网址。

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

希望这会有所帮助。