How do I turn on "always-on" for an Azure Function?

Mathias picture Mathias · Sep 10, 2016 · Viewed 13.6k times · Source

I have a Function App with 3 functions, one of them timer-triggered every 2 minutes. I observed that after a while, the function stops being triggered, but restarts when I go to the portal.

As I understand it, the reason is that by default, "Always On" is turned off. However, when I go to Application Settings / General Settings, I cannot activate the "On" state, which is grayed out. I can un-check "Off", which doesn't seem to stick or activate "On".

enter image description here

Am I missing something obvious? Is Always-On the solution to my problem, or is there something else I should do?

Note: the functions are written in F#; I doubt it matters, but I thought I would mention it just in case.

Answer

David Ebbo picture David Ebbo · Sep 11, 2016

This answer applies to all Azure Function scenarios with the exception of those that are triggered by an http request.

There are 3 cases to look at:

  1. You have a Function App running in a Free/Shared App Service Plan: Always On is not available, and those scenarios are simply not supported.
  2. You have a Function App running in a Basic/Standard/Premium App Service Plan: Always On is available and can be turned on. In fact it is on by default, and you'll get a warning in the Functions UI if you turn it off.
  3. You have a Function App using a Consumption Plan: there is no need for Always On as the system takes care of waking up your functions whenever they need to run. This is the recommended approach for most users.