Ausführen von Hintergrundaufgaben mit WebJobs in Azure App Service

Bereitstellen von WebJobs mit dem Azure-Portal, um eine ausführbare Datei oder ein Skript hochzuladen. Sie können Hintergrundaufgaben in Azure App Service ausführen.

Wenn Sie statt des Azure App Service Visual Studio 2019 zum Entwickeln und Bereitstellen von WebJobs verwenden, lesen Sie den Abschnitt Bereitstellen von WebJobs mit Visual Studio.

Übersicht

WebJobs ist ein Feature von Azure App Service, mit dem Sie ein Programm oder Skript in derselben Instanz wie eine Web-App, API-App oder mobile App ausführen können. Für die Nutzung von WebJobs fallen keine zusätzlichen Kosten an.

Sie können das Azure WebJobs SDK mit WebJobs verwenden, um zahlreiche Programmieraufgaben vereinfachen. WebJobs wird für Azure App Service für Linux zurzeit noch nicht unterstützt. Weitere Informationen finden Sie unter Was ist das WebJobs-SDK?.

Azure Functions bietet eine weitere Möglichkeit zum Ausführen von Programmen und Skripts. Einen Vergleich zwischen WebJobs und Functions finden Sie unter Auswählen zwischen Flow, Logic Apps, Functions und WebJobs.

WebJob-Typen

Die folgende Tabelle beschreibt die Unterschiede zwischen fortlaufenden und ausgelösten WebJobs.

Fortlaufend Ausgelöst
Werden sofort nach Erstellung des WebJobs gestartet. Damit der Auftrag nicht beendet wird, wird das Programm oder Skript in der Regel in einer Endlosschleife ausgeführt. Wenn der Auftrag beendet ist, können Sie ihn neu starten. Wird in der Regel mit dem WebJobs SDK verwendet. Werden nur gestartet, wenn sie manuell oder nach einem Zeitplan ausgelöst werden.
Werden in allen Instanzen ausgeführt, in denen die Web-App ausgeführt wird. Sie können den WebJob wahlweise auf eine einzelne Instanz beschränken. Werden in einer einzelnen Instanz ausgeführt, die Azure zum Lastenausgleich auswählt.
Unterstützen Remotedebuggen. Bieten keine Unterstützung für Remotedebuggen.
Code wird unter \site\wwwroot\app_data\Jobs\Continuous bereitgestellt. Code wird unter \site\wwwroot\app_data\Jobs\Triggered bereitgestellt.

Hinweis

Für eine Web-App kann nach 20 Minuten Inaktivität ein Timeout auftreten, und dieser Zeitgeber kann nur durch Anforderungen an die tatsächliche Web-App zurückgesetzt werden. Das Anzeigen der Konfiguration der App im Azure-Portal oder das Senden von Anforderungen an die Website mit erweiterten Tools (https://<app_name>.scm.azurewebsites.net) führt nicht zum Zurücksetzen des Zeitgebers. Wenn Sie für Ihre Web-App eine kontinuierliche oder zeitplanbasierte Ausführung festlegen oder ereignisgesteuerte Trigger verwenden, aktivieren Sie auf der Azure-Konfigurationsseite Ihrer Web-App die Einstellung Always On. Die Einstellung „Always On“ sorgt dafür, dass diese Arten von WebJobs zuverlässig ausgeführt werden. Dieses Feature steht nur in den Tarifen „Basic“, „Standard“ und „Premium“ zur Verfügung.

Unterstützte Dateitypen für Skripts oder Programme

Die folgenden Dateitypen werden unterstützt:

  • CMD, BAT, EXE (bei Verwendung von Windows-CMD)
  • PS1 (bei Verwendung von PowerShell)
  • SH (bei Verwendung von Bash)
  • PHP (bei Verwendung von PHP)
  • PY (bei Verwendung von Python)
  • JS (bei Verwendung von Node.js)
  • JAR (bei Verwendung von Java)

Erstellen eines fortlaufenden WebJobs

Wichtig

Wenn Sie die Quellcodeverwaltung mit Ihrer Anwendung konfiguriert haben, sollten die Webaufträge im Rahmen der Integration der Quellcodeverwaltung bereitgestellt werden. Nachdem die Quellcodeverwaltung für Ihre Anwendung konfiguriert wurde, kann ein Webauftrag nicht über das Azure-Portal hinzugefügt werden.

  1. Navigieren Sie im Azure-Portal zur Seite App Service Ihrer Web-App, API-App oder mobilen App von App Service.

  2. Suchen Sie im linken Bereich der App-Service-Seite Ihrer Anwendung nach WebJobs und wählen Sie diese aus.

    Auswählen von WebJobs

  3. Auf der Seite WebJobs wählen Sie Hinzufügen.

    Seite „WebJob“

  4. Geben Sie die in der Tabelle angegebenen Einstellungen WebJob hinzufügen ein.

    Screenshot, der die Einstellungen von „WebJob hinzufügen“ zeigt, die Sie konfigurieren müssen.

    Einstellung Beispielwert BESCHREIBUNG
    Name myContinuousWebJob Ein Name, der innerhalb einer App Service-App eindeutig ist. Muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur die Sonderzeichen „-“ und „_“ enthalten.
    Dateiupload ConsoleApp.zip Eine ZIP-Datei, die die ausführbare Datei oder Skriptdatei sowie für die Ausführung des Programms oder Skripts erforderliche Hilfsdateien enthält. Die unterstützten Typen von ausführbarer Datei oder Skriptdatei werden im Abschnitt Unterstützte Dateitypen aufgeführt.
    Typ Fortlaufend Die WebJob-Typen werden weiter oben in diesem Artikel beschrieben.
    Skalieren Mehrere Instanzen Diese Option ist nur für fortlaufende WebJobs verfügbar. Legt fest, ob das Programm oder Skript auf allen Instanzen oder nur einer Instanz ausgeführt wird. Die Option zum Ausführen auf mehreren Instanzen gilt nicht für die Tarife „Free“ oder „Shared“.
  5. Klicken Sie auf OK.

    Der neue WebJob wird auf der Seite WebJobs angezeigt. Wenn Sie eine Meldung sehen, die besagt, dass der WebJob hinzugefügt wurde, Sie sie aber nicht sehen, wählen Sie Aktualisieren.

    Liste von WebJobs

  6. Um einen fortlaufenden WebJob zu stoppen oder neu zu starten, klicken Sie mit der rechten Maustaste auf den WebJob in der Liste und wählen Sie Stopp oder Start.

    Beenden eines fortlaufenden WebJobs

Erstellen eines manuell ausgelösten WebJobs

  1. Suchen Sie im Azure-Portal nach App Services, und wählen Sie den Eintrag aus.

  2. Wählen Sie Ihre Webanwendung, API-App oder mobile App aus der Liste aus.

  3. Wählen Sie im linken Bereich der App Service-Seite Ihrer Anwendung WebJobs aus.

    Auswählen von WebJobs

  4. Auf der Seite WebJobs wählen Sie Hinzufügen aus.

    Seite „WebJob“

  5. Geben Sie die in der Tabelle angegebenen Einstellungen WebJob hinzufügen ein.

    Screenshot, der die Einstellungen zeigt, die für das Erstellen eines manuell ausgelösten WebJobs konfiguriert werden müssen.

    Einstellung Beispielwert BESCHREIBUNG
    Name myTriggeredWebJob Ein Name, der innerhalb einer App Service-App eindeutig ist. Muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur die Sonderzeichen „-“ und „_“ enthalten.
    Dateiupload ConsoleApp.zip Eine ZIP-Datei, die die ausführbare Datei oder Skriptdatei sowie für die Ausführung des Programms oder Skripts erforderliche Hilfsdateien enthält. Die unterstützten Typen von ausführbarer Datei oder Skriptdatei werden im Abschnitt Unterstützte Dateitypen aufgeführt.
    Typ Ausgelöst Die WebJob-Typen sind vorher in diesem Artikel beschrieben.
    Trigger Manuell
  6. Klicken Sie auf OK.

    Der neue WebJob wird auf der Seite WebJobs angezeigt. Wenn Sie eine Meldung sehen, die besagt, dass der WebJob hinzugefügt wurde, Sie sie aber nicht sehen, wählen Sie Aktualisieren.

    Liste von ausgelösten WebJobs

  7. Zum Ausführen von WebJobs klicken Sie mit der rechten Maustaste in die Liste und wählen Sie Ausführen.

    Webauftrag ausführen

Erstellen eines geplanten WebJobs

Ein geplanter WebJob wird ebenfalls ausgelöst. Sie können die automatische Auslösung des Triggers nach dem von Ihnen angegebenen Zeitplan planen.

  1. Suchen Sie im Azure-Portal nach App Services, und wählen Sie den Eintrag aus.

  2. Wählen Sie Ihre Webanwendung, API-App oder mobile App aus der Liste aus.

  3. Wählen Sie im linken Bereich der App Service-Seite Ihrer Anwendung WebJobs aus.

    Auswählen von WebJobs

  4. Auf der Seite WebJobs wählen Sie Hinzufügen aus.

    Seite „WebJob“

  5. Geben Sie die in der Tabelle angegebenen Einstellungen WebJob hinzufügen ein.

    Seite „WebJob hinzufügen“

    Einstellung Beispielwert BESCHREIBUNG
    Name myScheduledWebJob Ein Name, der innerhalb einer App Service-App eindeutig ist. Muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur die Sonderzeichen „-“ und „_“ enthalten.
    Dateiupload ConsoleApp.zip Eine ZIP-Datei, die die ausführbare Datei oder Skriptdatei sowie für die Ausführung des Programms oder Skripts erforderliche Hilfsdateien enthält. Die unterstützten Typen von ausführbarer Datei oder Skriptdatei werden im Abschnitt Unterstützte Dateitypen aufgeführt.
    Typ Ausgelöst Die WebJob-Typen werden weiter oben in diesem Artikel beschrieben.
    Trigger Geplant Damit die Planung zuverlässig funktioniert, aktivieren Sie das Feature „Always On“. Dieses Feature steht nur in den Tarifen „Basic“, „Standard“ und „Premium“ zur Verfügung.
    CRON-Ausdruck 0 0/20 * * * * CRON-Ausdrücke werden im folgenden Abschnitt beschrieben.
  6. Klicken Sie auf OK.

    Der neue WebJob wird auf der Seite WebJobs angezeigt. Wenn Sie eine Meldung sehen, die besagt, dass der WebJob hinzugefügt wurde, Sie sie aber nicht sehen, wählen Sie Aktualisieren.

    Liste von geplanten WebJobs

NCRONTAB-Ausdrücke

Sie können einen NCRONTAB-Ausdruck im Portal eingeben oder eine settings.job-Datei dem Stammverzeichnis Ihrer WebJob-ZIP-Datei hinzufügen, wie im folgenden Beispiel gezeigt:

{
    "schedule": "0 */15 * * * *"
}

Weitere Informationen finden Sie unter Planen eines ausgelösten WebJobs.

Hinweis

Die Standardzeitzone, die für die Ausführung von CRON-Ausdrücken verwendet wird, ist Coordinated Universal Time (UTC). Wenn Sie möchten, dass Ihr CRON-Ausdruck gemäß einer anderen Zeitzone ausgeführt wird, erstellen Sie eine App-Einstellung für Ihre Funktions-App mit dem Namen WEBSITE_TIME_ZONE. Weitere Informationen finden Sie unter NCRONTAB-Zeitzonen.

Verwalten von WebJobs

Sie können den Ausführungsstatus einzelner WebJobs verwalten, die auf Ihrer Website im Azure-Portal ausgeführt werden. Wechseln Sie einfach zu Einstellungen > WebJobs, wählen Sie den WebJob aus, und dann können Sie den WebJob starten und beenden. Sie können auch das Kennwort des Webhooks anzeigen und ändern, der den WebJob ausführt.

Sie können auch eine Anwendungseinstellung hinzufügenmit dem NamenWEBJOB_STOPPED von dem Wert 1, um alle WebJobs zu beenden, die auf Ihrer Website ausgeführt werden. Dies kann hilfreich sein, um zu verhindern, dass in Konflikt stehende WebJobs sowohl in Staging- als auch in Produktionsslots ausgeführt werden. Sie können auf ähnliche Weise den Wert 1 für die WEBJOBS_DISABLE_SCHEDULE Einstellung verwenden, um ausgelöste WebJobs auf der Website oder in einem Stagingslot zu deaktivieren. Denken Sie bei Slots daran, die Einstellungsoption Bereitstellungsslot zu aktivieren, damit die Einstellung selbst nicht ausgetauscht wird.

Anzeigen des Auftragsverlaufs

  1. Wählen Sie den WebJob aus, und wählen Sie dann Protokolle aus, um den Verlauf anzuzeigen.

    Schaltfläche „Protokolle“

  2. Wählen Sie auf der Seite Details zum WebJob einen Zeitpunkt aus, um die Details für eine Ausführung anzuzeigen.

    Details zum WebJob

  3. Wählen Sie auf der Seite Details zur WebJob-Ausführung die Option Ausgabe umschalten, um den Text der Protokollinhalte anzuzeigen.

    Ausführungsdetails zu WebJobs

    Um den Ausgabetext in einem separaten Browserfenster anzuzeigen, klicken Sie auf Herunterladen. Um den Text selbst herunterzuladen, klicken Sie mit der rechten Maustaste auf Herunterladen, und speichern Sie die Dateiinhalte mithilfe der Browseroptionen.

  4. Wählen Sie am oberen Rand der Seite den Breadcrumb-Link WebJobs aus, um eine Liste von WebJobs aufzurufen.

    WebJob-Breadcrumb

    Liste der Webaufträge im Verlaufsdashboard

Nächste Schritte

Das Azure WebJobs SDK kann in Verbindung mit WebJobs zahlreiche Programmieraufgaben vereinfachen. Weitere Informationen finden Sie unter Was ist das WebJobs-SDK?.