What is the simplest way to run a timer-triggered Azure Function locally once? What is the simplest way to run a timer-triggered Azure Function locally once? azure azure

What is the simplest way to run a timer-triggered Azure Function locally once?


I had the same question, and used the DEBUG-flag to have the RunOnStartup only while debugging:

        public static void Run(            [TimerTrigger("* 0 7 * * 1-5"#if DEBUG            , RunOnStartup=true#endif            )]TimerInfo myTimer, TraceWriter log)        {


You could perhaps use the RunOnStartup flag as documented here. It doesn't quite meet your brief regarding it only running once, but it should at least execute it locally once the app has started.

/// Gets or sets a value indicating whether the function should be invoked/// immediately on startup. After the initial startup run, the function will/// be run on schedule thereafter.

Example using attribute binding:

[TimerTrigger("%TimerSchedule%", RunOnStartup = true)]TimerInfo myTimer


From https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=windows%2Ccsharp%2Cbash#non-http-triggered-functions

Non-HTTP triggered functions

For all kinds of functions other than HTTP triggers and webhooks, you can test your functions locally by calling an administration endpoint. Calling this endpoint with an HTTP POST request on the local server triggers the function. You can optionally pass test data to the execution in the body of the POST request. This functionality is similar to the Test tab in the Azure portal.

You call the following administrator endpoint to trigger non-HTTP functions:

http://localhost:{port}/admin/functions/{function_name}

To pass test data to the administrator endpoint of a function, you must supply the data in the body of a POST request message. The message body is required to have the following JSON format:

{    "input": "<trigger_input>"}