Cronjobs in Azure Functions: Zeitgesteuerte Aufgaben mit dem TimerTrigger ausführen
Lesedauer: 3 Minuten

Zeitgesteuerte Prozesse gehören zu den häufigsten Anforderungen in modernen Anwendungen – sei es zum täglichen Versenden von Berichten, zum nächtlichen Datenabgleich oder zur periodischen Bereinigung von Dateien. In Azure Functions lässt sich dies elegant über den TimerTrigger realisieren – auf Basis von Cron-Ausdrücken.

In diesem Beitrag erfährst du:

  • Wie Cron-Ausdrücke in Azure Functions funktionieren
  • Welche Besonderheiten im Vergleich zu klassischen Unix-Cronjobs gelten
  • Wie man wiederkehrende Zeitpläne richtig berechnet
  • Und wie du eine Azure Function per TimerTrigger zeitgesteuert ausführst

🔁 Was ist ein Cronjob?

Ein Cronjob ist ein wiederkehrender, geplanter Task. In Linux-Systemen erfolgt die Steuerung über den sogenannten Cron-Daemon, der Jobs zu vordefinierten Zeiten ausführt – gesteuert über einen sogenannten Cron-Ausdruck.

Auch Azure Functions unterstützen solche geplanten Aufgaben – allerdings über die serverlose TimerTrigger-Bindung, die nach dem Cron-Prinzip funktioniert.

📌 Unterschiede zwischen klassischem Cron und Azure Functions

MerkmalKlassischer CronAzure Functions TimerTrigger
Anzahl Felder5 (Minute bis Wochentag)6 (Sekunde bis Wochentag)
ZeitzoneSystemzeitStandardmäßig UTC
UmgebungUnix/LinuxServerless Cloud (Azure)
Syntax-Empfehlung* * * * *0 */5 * * * *

🧠 Aufbau eines Cron-Ausdrucks in Azure Functions

In Azure Functions wird ein Cron-Ausdruck immer in sechs Felder unterteilt:

XML
{Sekunde} {Minute} {Stunde} {Tag} {Monat} {Wochentag}
XML

Beispiel:

C#
[TimerTrigger("0 30 3 * * *")]
C#

Diese Funktion wird täglich um 3:30:00 Uhr (UTC) ausgeführt.

📚 Bedeutung der Felder

FeldWertebereichBeschreibung
Sekunde0-59Wann innerhalb der Minute starten
Minute0-59Minute der Stunde
Stunde0-23Stunde des Tages
Tag1-31Tag des Monats
Monat1-12Monat
Wochentag0-6Wochentag (So=0, … Sa=6)

⏲️ TimerTrigger in einer Azure Function verwenden

Hier ein vollständiges Beispiel für eine Azure Function in C# mit TimerTrigger:

MyTimeTriggerFunction.cs
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace TimeTriggerTestAzureFunction;

public class MyTimeTriggerFunction
{
    private readonly ILogger _logger;

    public MyTimeTriggerFunction(
        ILoggerFactory loggerFactory)
    {
        _logger
            = loggerFactory
                .CreateLogger<MyTimeTriggerFunction>();
    }

    [Function("MyTimeTriggerFunction1")]
    public void Run(
        [TimerTrigger("0 0 6 * * 1")] TimerInfo myTimer)
    {
        _logger
            .LogInformation(
                $"C# Timer trigger function executed at: " +
                $"{DateTime.Now}");

        if (myTimer.ScheduleStatus is not null)
        {
            _logger
                .LogInformation(
                    $"Next timer schedule at: " +
                    $"{myTimer.ScheduleStatus.Next}");
        }
    }
}
C#

🔍 Erklärung:

  • "0 0 6 * * 1" = jeden Montag um 6:00:00 Uhr UTC
  • TimerInfo liefert nützliche Infos wie die nächste geplante Ausführung

🧮 Beispiele für Cron-Ausdrücke

BeschreibungCron-Ausdruck
Alle 5 Minuten0 */5 * * * *
Jeden Tag um 12:30 Uhr (UTC)0 30 12 * * *
Jeden Sonntag um 23:45 Uhr0 45 23 * * 0
Jeden Werktag um 6:00 Uhr0 0 6 * * 1-5
Jeden Monat am 1. um Mitternacht0 0 0 1 * *

📌 Hinweis: Alle Zeiten sind in UTC angegeben! Wenn du mit lokalen Zeitzonen arbeiten möchtest, siehe unten.

🌍 Zeitzone anpassen (z. B. auf Europa/Berlin)

Standardmäßig verwendet Azure Functions die UTC-Zeitzone. Um eine andere Zeitzone zu nutzen, kannst du die App-Einstellung setzen:

XML
WEBSITE_TIME_ZONE = Europe/Berlin
XML

🛠️ Tipps & Best Practices

Teste deine Cron-Ausdrücke mit Tools wie: crontab.guru

📌 Kommentiere Cron-Ausdrücke in deinem Code oder deiner Doku

⏱️ Beachte, dass der TimerTrigger nicht sofort bei Deployment oder Scale-Out startet – plane Initialzeit ggf. ein.

🚫 Wenn eine Ausführung fehlschlägt, gibt es keinen automatischen Retry! Plane Logging oder Monitoring ein.

📦 Fazit

Cron-Ausdrücke ermöglichen eine elegante Steuerung wiederkehrender Aufgaben. In Azure Functions gelingt das durch den TimerTrigger – mit nur wenigen Zeilen Code kannst du deine Funktionen täglich, wöchentlich oder im Minutentakt ausführen lassen.

Wenn du die sechs Felder richtig interpretierst, auf die UTC-Zeit achtest und die nötige App-Einstellung für die Zeitzone setzt, hast du ein mächtiges Werkzeug zur Hand – ohne eigene Infrastruktur.

GitHub Desktop: Tool zum schnellen Arbeiten mit Git und GitHub Extension Methods: Object Eigener Json-Converter für Array/List/Object
View Comments
There are currently no comments.