Udostępnij za pośrednictwem


Omówienie usługi App Service WebJobs

Usługa Azure WebJobs to wbudowana funkcja usługi Azure App Service , która umożliwia uruchamianie zadań w tle, skryptów i programów wraz z aplikacjami internetowymi, interfejsem API lub aplikacjami mobilnymi. Zadania WebJob upraszczają automatyzację typowych operacji — takich jak przetwarzanie danych, zmiana rozmiaru obrazu, obsługa kolejek lub oczyszczanie plików — uruchamiając je w tym samym skalowalnym środowisku zarządzanym co aplikacja.

Wybór zadań WebJobs

WebJobs pasują idealnie w przypadku:

  • Aplikacja jest już hostowana w usłudze App Service.
  • Chcesz wdrażać zadania w tle i zarządzać nimi razem z aplikacją.
  • Nie potrzebujesz oddzielnego modelu skalowania ani wyzwalaczy opartych na zdarzeniach poza podstawowym planowaniem ani sondowaniem kolejek.

Aby uzyskać bardziej skalowalne, niezależne lub sterowane zdarzeniami obciążenia, rozważ użycie usługi Azure Functions.

Kluczowe możliwości

  • Uruchamianie zadań w tle bez aprowizacji oddzielnej infrastruktury
  • Wyzwalanie zadań na żądanie, zgodnie z harmonogramem lub w sposób ciągły
  • Korzystanie z wielu języków i platform skryptów
  • Wdrażanie za pomocą portalu Azure, programu Visual Studio, wdrażania za pomocą pliku zip lub potoków automatyzacji
  • Monitorowanie i rozwiązywanie problemów przy użyciu diagnostyki Kudu lub App Service
  • Integracja z innymi usługami platformy Azure, takimi jak Azure Storage, Event Hubs lub Service Bus

Typy zadań WebJob

Zadania WebJob są dostępne w trzech głównych typach:

  • Wyzwalane zadania WebJob: uruchamiane na żądanie lub w odpowiedzi na określone zdarzenia. Można je wyzwalać ręcznie lub z poziomu usługi, takiej jak Azure Storage.
  • Zaplanowane zadania WebJob: wyspecjalizowany typ wyzwalanego zadania WebJob uruchamianego zgodnie ze zdefiniowanym harmonogramem settings.job przy użyciu pliku z wyrażeniami NCRONTAB.
  • WebJobs działające w trybie ciągłym: działają trwale w tle, gdy aplikacja App Service jest uruchomiona. Idealne rozwiązanie do wykonywania zadań sondowania w kolejce lub monitorowania w tle.

Omówienie diagramu WebJobs w usłudze Azure App Service przedstawiające typy zadań.

Obsługiwane platformy i typy plików

WebJoby są obsługiwane w następujących opcjach hostingu w usłudze App Service:

  • Kod systemu Windows
  • Kontenery systemu Windows
  • Kod systemu Linux
  • Linuxowe kontenery

Obsługiwane typy plików/skryptów obejmują:

  • Pliki wykonywalne i skrypty systemu Windows: .exe, , .cmd.bat
  • Skrypty programu PowerShell: .ps1
  • Skrypty powłoki Bash: .sh
  • Języki skryptowe: Python (.py), Node.js (), PHP (.js.php), F# (.fsx)
  • Dowolne środowisko uruchomieniowe języka programowania zawarte w aplikacji kontenerowej

Ta wszechstronność umożliwia integrację zadań WebJob z szeroką gamą architektur aplikacji przy użyciu narzędzi i języków, z których już korzystasz.

Opcje wdrożenia

Możesz wdrażać Zadania WebJob przy użyciu kilku metod:

  • Portal Azure lub przekazywanie pliku zip: ręcznie przekazuj skrypty lub pliki zadań.
  • Visual Studio: wdróż bezpośrednio przy użyciu aplikacji ASP.NET w usłudze Windows App Service.
  • Potoki CI/CD: Automatyzacja wdrażania przy użyciu GitHub Actions, Azure DevOps lub Azure CLI.
  • Szablony ARM/Bicep: Deklaratywne wdrożenie infrastruktury i zadań.

Zadania WebJob zapewniają również wbudowane rejestrowanie za pośrednictwem usługi Kudu i integrację z diagnostyką usługi App Service, aby ułatwić monitorowanie aktywności zadań i rozwiązywanie problemów.

Zagadnienia dotyczące skalowania

Zadania WebJob są skalowane razem z planem usługi App Service. Jeśli aplikacja jest skonfigurowana do skalowania w poziomie do wielu wystąpień, zadania WebJob będą uruchamiane w każdym wystąpieniu zgodnie z potrzebami:

  • Wyzwalane zadania WebJob będą domyślnie uruchamiane w jednym wystąpieniu.
  • Continuous WebJobs można skonfigurować do uruchamiania we wszystkich wystąpieniach lub w jednym używając ustawienia WEBJOBS_RUN_ONCE.

Jeśli potrzebujesz niezależnie skalowalnego lub opartego na zdarzeniach wykonywania, usługa Azure Functions może być bardziej odpowiednia.

Najlepsze rozwiązania

  • Użyj wyzwalanych zadań WebJob na potrzeby operacji ad hoc lub zaplanowanych.
  • Używaj ciągłych zadań WebJob tylko wtedy, gdy zadanie musi być uruchomione nieprzerwanie (np. sondowanie kolejki).
  • Zaimplementuj logikę ponawiania prób i obsługę błędów w skryptach.
  • Użyj rejestrowania aplikacji oraz dzienników Kudu, aby monitorować zachowanie zadania.
  • Jeśli to możliwe, logika zadania jest oddzielona od głównej logiki aplikacji .
  • Użyj wyzwalaczy opartych na magazynie (np. kolejek platformy Azure) w celu zapewnienia niezawodnej, oddzielonej komunikacji.

Wybieranie scenariusza

Cel Artykuł
Szybko uruchom zaplanowane zadanie WebJob Szybki start: tworzenie zaplanowanego zadania WebJob
Ręczne tworzenie zadania WebJob przy użyciu skryptów lub kodu Utwórz WebJob w usłudze Azure App Service
Postępuj zgodnie z samouczkiem przy użyciu praktycznego przypadku użycia Samouczek: uruchamianie zadań w tle za pomocą zadań WebJob

Dalsze kroki