Partager via


Vue d'ensemble des WebJobs d'App Service

Azure WebJobs est une fonctionnalité intégrée d’Azure App Service qui vous permet d’exécuter des tâches, des scripts et des programmes en arrière-plan en même temps que vos applications web, API ou mobiles. WebJobs simplifie l’automatisation des opérations courantes, telles que le traitement des données, le redimensionnement des images, la gestion des files d’attente ou le nettoyage des fichiers, en s’exécutant dans le même environnement évolutif et géré que votre application.

Choisir les WebJobs

Les WebJobs sont bien adaptées quand :

  • Vous hébergez déjà votre application sur App Service.
  • Vous souhaitez déployer et gérer des tâches en arrière-plan avec votre application.
  • Vous n’avez pas besoin d’un modèle de mise à l’échelle distinct ou de déclencheurs basés sur des événements en dehors de la planification ou de l’interrogation simple des files d'attente.

Pour des charges de travail plus évolutives, hébergées indépendamment ou pilotées par des événements, envisagez d’utiliser Azure Functions.

Fonctionnalités clés

  • Exécuter des tâches en arrière-plan sans provisionner une infrastructure distincte
  • Déclencher des travaux à la demande, selon une planification ou en continu
  • Utiliser plusieurs langages et plateformes de script
  • Déployer à l’aide du portail Azure, de Visual Studio, du déploiement zip ou des pipelines d’automatisation
  • Surveiller et résoudre les problèmes à l’aide des diagnostics Kudu ou App Service
  • Intégrer à d’autres services Azure tels que Stockage Azure, Event Hubs ou Service Bus

Types de tâches web

Les webJobs sont fournis dans trois types principaux :

  • Tâches web déclenchées : exécutez à la demande ou en réponse à des événements spécifiques. Vous pouvez les déclencher manuellement ou à partir d’un service comme Stockage Azure.
  • Tâches web planifiées : type spécialisé de tâches web déclenchées qui s’exécute selon une planification définie à l’aide d’un settings.job fichier avec des expressions NCRONTAB.
  • Tâches web continues : exécutez de façon permanente en arrière-plan pendant l’exécution de votre application App Service. Idéal pour les tâches de sondage de file d'attente ou de surveillance en arrière-plan.

Vue d’ensemble du diagramme des tâches web dans Azure App Service, montrant les types de travaux.

Plateformes et types de fichiers pris en charge

Les "WebJobs" sont pris en charge sur les options d'hébergement App Service suivantes :

  • Code Windows
  • Conteneurs Windows
  • Code Linux
  • Conteneurs Linux

Les types de fichier/script pris en charge sont les suivants :

  • Exécutables et scripts Windows : .exe, .cmd, .bat
  • Scripts PowerShell : .ps1
  • Scripts Bash : .sh
  • Langages de script : Python (.py), Node.js (.js), PHP (.php), F# (.fsx)
  • Tout runtime de langage inclus dans votre application conteneur

Cette polyvalence vous permet d’intégrer webJobs dans un large éventail d’architectures d’application à l’aide des outils et des langages que vous connaissez déjà.

Options de déploiement

Vous pouvez déployer des tâches web à l’aide de plusieurs méthodes :

  • Portail Azure ou chargement zip : chargez manuellement vos fichiers de script ou de travail.
  • Visual Studio : Déployez directement avec votre application ASP.NET sur Windows App Service.
  • Pipelines CI/CD : Automatisez le déploiement avec GitHub Actions, Azure DevOps ou Azure CLI.
  • Modèles ARM/Bicep : Déployez l’infrastructure et les travaux de manière déclarative.

WebJobs fournit également une journalisation intégrée via Kudu et l’intégration avec les diagnostics App Service pour vous aider à surveiller l’activité des travaux et à résoudre les problèmes.

Mise à l'échelle - Éléments à prendre en compte

Les WebJobs s'adaptent avec votre plan App Service. Si votre application est configurée pour effectuer un scale-out vers plusieurs instances, vos tâches web s’exécutent sur chaque instance en fonction des besoins :

  • Les tâches web déclenchées s’exécutent sur une seule instance par défaut.
  • Les tâches web continues peuvent être configurées pour s’exécuter sur toutes les instances ou un seul à l’aide du WEBJOBS_RUN_ONCE paramètre.

Si vous avez besoin d’une exécution évolutive ou pilotée par les événements indépendamment, Azure Functions peut être plus approprié.

Meilleures pratiques

  • Utilisez les WebJobs déclenchés pour les opérations ad hoc ou planifiées.
  • Utilisez des tâches web continues uniquement lorsque la tâche doit s’exécuter constamment (par exemple, interroger une file d’attente).
  • Implémentez la logique de nouvelle tentative et la gestion des erreurs dans vos scripts.
  • Utilisez la journalisation des applications et les journaux Kudu pour surveiller le comportement du travail.
  • Séparez la logique de travail de la logique d’application principale lorsque cela est possible.
  • Utilisez des déclencheurs basés sur le stockage (par exemple, des files d’attente Azure) pour une communication fiable et découplée.

Choisir votre scénario

Objectif Article
Exécuter rapidement une tâche web planifiée Démarrage rapide : Créer une tâche web planifiée
Créer une tâche web manuellement à l’aide de scripts ou de code Créer une tâche web dans Azure App Service
Suivre un tutoriel à l’aide d’un cas d’usage pratique Tutoriel : Exécuter des tâches en arrière-plan avec webJobs

Étapes suivantes