Search code examples
f#azure-functionstimer-trigger

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


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.


Solution

  • 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.