Freigeben über


Übersicht über WebJobs in App Service

Azure WebJobs ist ein integriertes Feature von Azure App Service , mit dem Sie Hintergrundaufgaben, Skripts und Programme zusammen mit Ihren Web-, API- oder mobilen Anwendungen ausführen können. WebJobs vereinfachen die Automatisierung für allgemeine Vorgänge wie Datenverarbeitung, Bildänderung, Warteschlangenverarbeitung oder Dateibereinigung, indem sie in derselben skalierbaren, verwalteten Umgebung wie Ihre Anwendung ausgeführt wird.

Auswählen von WebJobs

WebJobs eignen sich gut, wenn:

  • Sie hosten Ihre Anwendung bereits im App Service.
  • Sie möchten Hintergrundaufgaben zusammen mit Ihrer App bereitstellen und verwalten.
  • Sie benötigen kein separates Skalierungsmodell oder ereignisbasierte Trigger über die grundlegende Planung oder Warteschlangenabfragung hinaus.

Für skalierbarere, unabhängig gehostete oder ereignisgesteuerte Workloads sollten Sie azure Functions verwenden.

Wichtige Funktionen

  • Ausführen von Hintergrundaufgaben ohne Bereitstellung einer separaten Infrastruktur
  • Auslösen von Aufträgen bei Bedarf, nach einem Zeitplan oder kontinuierlich
  • Verwenden mehrerer Sprachen und Skriptplattformen
  • Bereitstellen über das Azure-Portal, Visual Studio, ZIP-Bereitstellung oder Automatisierungspipelines
  • Überwachung und Problemlösung mit der Kudu- oder App Service-Diagnose
  • Integration in andere Azure-Dienste wie Azure Storage, Event Hubs oder Service Bus

WebJob-Typen

WebJobs kommen in drei Haupttypen:

  • Ausgelöste WebJobs: Ausführen bei Bedarf oder als Reaktion auf bestimmte Ereignisse. Sie können sie manuell oder von einem Dienst wie Azure Storage auslösen.
  • Geplante WebJobs: Ein spezieller Typ von ausgelöstem WebJob, der mit einer settings.job Datei mit NCRONTAB-Ausdrücken auf einem definierten Zeitplan ausgeführt wird.
  • Fortlaufende WebJobs: Dauerhafte Ausführung im Hintergrund, während die App Service-App ausgeführt wird. Ideal für Warteschlangenabfragungs- oder Hintergrundüberwachungsaufgaben.

Diagrammübersicht über WebJobs in Azure App Service mit Auftragstypen.

Unterstützte Plattformen und Dateitypen

WebJobs werden für die folgenden App Service-Hostingoptionen unterstützt:

  • Windows-Code
  • Windows-Container
  • Linux-Code
  • Linux-Container

Zu den unterstützten Datei-/Skripttypen gehören:

  • Ausführbare Windows-Dateien und Skripts: .exe, , .cmd.bat
  • PowerShell-Skripts: .ps1
  • Bash-Skripts: .sh
  • Skriptsprachen: Python (.py), Node.js (), PHP (.js), F# (.php.fsx)
  • In Ihrer Container-App enthaltene Runtime in beliebiger Sprache

Mit dieser Vielseitigkeit können Sie WebJobs in eine vielzahl von Anwendungsarchitekturen integrieren, indem Sie die Tools und Sprachen verwenden, mit denen Sie sich bereits vertraut sind.

Bereitstellungsoptionen

Sie können WebJobs mit mehreren Methoden bereitstellen:

  • Azure-Portal oder ZIP-Upload: Manuelles Hochladen Ihrer Skript- oder Auftragsdateien.
  • Visual Studio: Stellen Sie direkt mit Ihrer ASP.NET-App in Windows App Service bereit.
  • CI/CD-Pipelines: Automatisieren der Bereitstellung mit GitHub-Aktionen, Azure DevOps oder Azure CLI.
  • ARM/Bicep-Vorlagen: Deklarativ bereitstellen von Infrastruktur und Aufträgen.

WebJobs bieten zudem integrierte Protokollierung über Kudu und Integration in die App Service-Diagnose, um Sie beim Überwachen der Auftragsaktivität und beim Beheben von Problemen zu unterstützen.

Überlegungen zur Skalierung

WebJobs skalieren zusammen mit Ihrem App Service-Plan. Wenn Ihre App so konfiguriert ist, dass sie auf mehrere Instanzen skaliert wird, werden Ihre WebJobs je nach Bedarf auf jeder Instanz ausgeführt:

  • Ausgelöste WebJobs werden standardmäßig auf einer einzelnen Instanz ausgeführt.
  • Fortlaufende WebJobs können so konfiguriert werden, dass sie auf allen Instanzen oder einer einzelnen Instanz ausgeführt werden, die die WEBJOBS_RUN_ONCE Einstellung verwendet.

Wenn Sie unabhängig skalierbare oder ereignisgesteuerte Ausführung benötigen, ist Azure Functions möglicherweise geeigneter.

Bewährte Methoden

  • Verwenden Sie ausgelöste WebJobs für spontane oder geplante Aufgaben.
  • Verwenden Sie fortlaufende WebJobs nur, wenn die Aufgabe permanent ausgeführt werden muss (z. B. Abfragen einer Warteschlange).
  • Implementieren Sie Wiederholungslogik und Fehlerbehandlung in Ihren Skripts.
  • Verwenden Sie Anwendungsprotokollierung und Kudu-Protokolle , um das Auftragsverhalten zu überwachen.
  • Trennen Sie die Auftragslogik nach Möglichkeit von der Haupt-App-Logik .
  • Verwenden Sie speicherbasierte Trigger (z. B. Azure-Warteschlangen) für eine zuverlässige, entkoppelte Kommunikation.

Auswählen Ihres Szenarios

Ziel Artikel
Schnelles Ausführen eines geplanten WebJobs Schnellstart: Erstellen eines geplanten WebJobs
Manuelles Erstellen eines WebJob mithilfe von Skripts oder Code Erstellen eines WebJobs in Azure App Service
Ein Tutorial durcharbeiten mit einem praktischen Beispiel Lernprogramm: Ausführen von Hintergrundaufgaben mit WebJobs

Nächste Schritte