Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cet article explique comment déployer des tâches web à l’aide du portail Azure pour charger un exécutable ou un script. WebJobs est une fonctionnalité d’Azure App Service qui vous permet d’exécuter un programme ou un script dans la même instance qu’une application web. Tous les plans App Service prennent en charge WebJobs. L’utilisation de WebJobs n’entraîne aucun coût supplémentaire.
Aperçu
WebJobs est une fonctionnalité Azure App Service qui vous permet d’exécuter un programme ou un script dans une même instance, en tant qu’application web. Tous les plans App Service prennent en charge WebJobs. L’utilisation de WebJobs n’entraîne aucun coût supplémentaire.
Si vous utilisez Visual Studio au lieu d’Azure App Service pour développer et déployer des tâches web, consultez Développer et déployer des tâches web à l’aide de Visual Studio.
Azure Functions fournit une autre façon d’exécuter des programmes et des scripts. Pour obtenir une comparaison entre WebJobs et Functions, consultez Choisir les services d’intégration et d’automatisation appropriés dans Azure.
Types de tâches web
Types de fichier pris en charge pour les scripts ou les programmes
Important
Les tâches web ne sont pas prises en charge dans les conteneurs Linux personnalisés basés sur Alpine Linux, notamment les applications Linux utilisant des piles d’exécution Java 8 et Java 11. À compter des applications Linux Java 17, Azure App Service utilise des images non alpines, compatibles avec webJobs.
Les types de fichiers suivants sont pris en charge :
- Utilisation de cmd Windows : .cmd, .bat, .exe
- Utilisation de PowerShell : .ps1
- Utilisation de Bash : .sh
- Utilisation de Node.js: .js
- Utilisation de Java : .jar
Les runtimes nécessaires pour exécuter ces types de fichiers sont déjà installés sur l’instance d’application web.
WebJobs continus vs déclenchés
Le tableau suivant décrit les différences entre WebJobs continus et déclenchés :
| Continus | Déclenchés |
|---|---|
| Démarre immédiatement lorsque le WebJob est créé. Pour empêcher la tâche de se terminer, le programme ou le script est généralement exécuté à l’intérieur d’une boucle sans fin. Si la tâche se termine, vous pouvez la redémarrer. Généralement utilisé avec le Kit de développement logiciel (SDK) WebJobs. | Démarre uniquement en cas de déclenchement manuel ou selon une planification. |
| S’exécute sur toutes les instances sur lesquelles l’application web s’exécute. Vous pouvez facultativement limiter la tâche « WebJob » à une seule instance. | S’exécute sur une seule instance sélectionnée par Azure pour l’équilibrage de charge. |
| Prend en charge le débogage à distance. | Ne prend pas en charge le débogage à distance. |
Le code est déployé sous \site\wwwroot\app_data\Jobs\Continuous. |
Le code est déployé sous \site\wwwroot\app_data\Jobs\Triggered. |
Remarque
Une application Web peut expirer après 20 minutes d’inactivité, et seules les demandes adressées à l’application Web réelle peuvent réinitialiser le minuteur. L’affichage de la configuration de l’application dans le portail Azure ou l’exécution de demandes sur le site d’outils avancés ne réinitialise pas le minuteur. Si vous définissez l’application web qui héberge votre travail pour qu’elle s’exécute en continu, s’exécutez selon une planification ou utilisez des déclencheurs pilotés par les événements, activez le paramètre Always On dans le volet Configuration Azure de votre application web. Le paramètre Always On permet de s’assurer que ces types de tâches web s’exécutent de manière fiable. Cette fonctionnalité est disponible uniquement dans les niveaux tarifaires De base, Standard et Premium.
Création d’une tâche web continue
Important
Lorsque le contrôle de code source est configuré pour votre application, Webjobs doit être déployé dans le cadre de l’intégration du contrôle de code source. Une fois que le contrôle de code source est configuré pour votre application, une tâche WebJob ne peut pas être ajoutée à partir du portail Azure.
Dans le portail Azure, ouvrez la page App Service de votre application Web App Service, application API ou application mobile.
Sous Paramètres dans le volet gauche, sélectionnez WebJobs, puis sélectionnez Ajouter.
Renseignez les paramètres Ajouter une tâche WebJob comme spécifié dans le tableau, puis sélectionnez Créer une tâche WebJob.
Paramètre Valeur d'échantillon Description Nom myContinuousWebJob Nom unique de WebJob. Doit commencer par une lettre ou un nombre et ne doit pas contenir de caractères spéciaux autres que "-"et"_".Chargement de fichiers ConsoleApp.zip Un fichier .zip qui contient votre exécutable ou un fichier script ainsi que les fichiers de prise en charge requis pour exécuter le programme ou le script. Les types de fichiers exécutables ou scripts pris en charge sont répertoriés dans la section Types de fichiers pris en charge. Type Continus Les types de tâches web sont décrites précédemment dans cet article. échelle Multi-instances Disponible uniquement pour les tâches web continues. Détermine si le programme ou le script s’exécute sur toutes les instances ou une seule instance. L’option permettant une exécution sur plusieurs instances ne s’applique pas aux niveaux tarifaires Gratuit ou Partagé. La nouvelle tâche web apparaît dans la page WebJobs. Si vous voyez un message indiquant que la tâche web a été ajoutée, mais que vous ne la voyez pas, sélectionnez Actualiser.
Pour arrêter ou redémarrer une tâche WebJob continue, cliquez avec le bouton droit sur la tâche WebJob dans la liste, puis sélectionnez Arrêter ou Démarrer et confirmez votre choix.
Créer une tâche web déclenchée manuellement
Dans le portail Azure, ouvrez la page App Service de votre application Web App Service, application API ou application mobile.
Sous Paramètres dans le volet gauche, sélectionnez WebJobs, puis sélectionnez Ajouter.
Renseignez les paramètres Ajouter une tâche WebJob comme spécifié dans le tableau, puis sélectionnez Créer une tâche WebJob.
Paramètre Valeur d'échantillon Description Nom myTriggeredWebJob Nom unique de WebJob. Doit commencer par une lettre ou un nombre et ne doit pas contenir de caractères spéciaux autres que "-"et"_".Chargement de fichiers ConsoleApp1.zip Un fichier .zip qui contient votre exécutable ou un fichier script ainsi que les fichiers de prise en charge requis pour exécuter le programme ou le script. Les types de fichiers exécutables ou scripts pris en charge sont répertoriés dans la section Types de fichiers pris en charge. Type Déclenchés Les types de WebJobs sont décrits précédemment dans cet article. Déclencheurs Manuel La nouvelle tâche web apparaît dans la page WebJobs. Si vous voyez un message indiquant que la tâche web a été ajoutée, mais que vous ne la voyez pas, sélectionnez Actualiser.
Pour exécuter une tâche WebJob déclenchée manuellement, cliquez avec le bouton droit sur la tâche WebJob dans la liste, sélectionnez le bouton Exécuter , puis confirmez votre sélection.
Créer une tâche web planifiée
Une tâche Webjob planifiée est également déclenchée. Vous pouvez planifier le déclencheur pour qu’il se produise automatiquement selon la planification que vous spécifiez.
Dans le portail Azure, ouvrez la page App Service de votre application Web App Service, application API ou application mobile.
Sous Paramètres dans le volet gauche, sélectionnez WebJobs, puis sélectionnez Ajouter.
Renseignez les paramètres Ajouter une tâche WebJob comme spécifié dans le tableau, puis sélectionnez Créer une tâche WebJob.
Paramètre Valeur d'échantillon Description Nom myScheduledWebJob Nom unique de WebJob. Doit commencer par une lettre ou un nombre et ne doit pas contenir de caractères spéciaux autres que "-"et"_".Chargement de fichiers ConsoleApp.zip Un fichier .zip qui contient votre exécutable ou un fichier script ainsi que les fichiers de prise en charge requis pour exécuter le programme ou le script. Les types de fichiers exécutables ou scripts pris en charge sont répertoriés dans la section Types de fichiers pris en charge. Type Déclenchés Les types de tâches web sont décrites précédemment dans cet article. Déclencheurs Planifié Pour que la planification fonctionne correctement, activez la fonctionnalité Toujours actif. La fonctionnalité Toujours actif est disponible uniquement dans les niveaux tarifaires De base, Standard et Premium. Expression CRON 0 0/20 * * * * Les expressions CRON sont décrites dans la section suivante. La nouvelle tâche web apparaît dans la page WebJobs. Si vous voyez un message indiquant que la tâche web a été ajoutée, mais que vous ne la voyez pas, sélectionnez Actualiser.
La tâche web planifiée est exécutée en fonction de la planification définie par l’expression CRON. Pour exécuter manuellement une tâche WebJob à tout moment, cliquez avec le bouton droit sur le WebJob dans la liste, sélectionnez le bouton Exécuter, puis confirmez votre sélection.
Expressions NCRONTAB
Une expression NCRONTAB est similaire à une expression CRON, mais inclut un sixième champ supplémentaire au début pour la précision du temps en secondes. Vous pouvez entrer une expression NCRONTAB dans le portail ou inclure un settings.job fichier à la racine de votre fichier webJob .zip , comme dans l’exemple suivant :
{
"schedule": "0 */15 * * * *"
}
Pour en savoir plus, consultez Planification d’un WebJob déclenché.
Remarque
Le fuseau horaire par défaut utilisé pour exécuter les expressions CRON est le Temps universel coordonné (UTC). Pour que votre expression CRON s’exécute sur un autre fuseau horaire, créez un paramètre d’application nommé WEBSITE_TIME_ZONE pour votre application de fonction. Pour plus d’informations, consultez Fuseaux horaires NCRONTAB.
Gérer les WebJobs
Vous pouvez gérer l’état d’exécution des tâches web individuelles exécutées sur votre site à l’aide du portail Azure. Accédez à Paramètres>WebJobs, choisissez la tâche WebJob, et vous pouvez démarrer et arrêter la tâche WebJob. Vous pouvez également afficher et modifier le mot de passe du webhook qui exécute tâche WebJob.
Vous pouvez également configurer un paramètre d’application nommé WEBJOBS_STOPPED avec la valeur permettant d’arrêter 1 toutes les tâches web en cours d’exécution sur votre site. Vous pouvez utiliser cette méthode pour empêcher les tâches WebJobs conflictuelles de s’exécuter à la fois dans les emplacements de préproduction et dans ceux de production. Vous pouvez également utiliser une valeur de 1 pour le paramètre WEBJOBS_DISABLE_SCHEDULE afin de désactiver les WebJobs déclenchés sur le site ou dans un slot de staging. Pour les emplacements, n’oubliez pas d’activer l’option Paramètre des emplacements de déploiement afin que le paramètre lui-même ne soit pas échangé.
Afficher l'historique des tâches
Pour le WebJob que vous souhaitez consulter, sélectionnez Journaux.
À la page Détails de la tâche web, sélectionnez une heure pour afficher les détails d’une exécution.
Dans la page Détails de l’exécution de la tâche WebJob, vous pouvez sélectionner Télécharger pour obtenir un fichier texte des journaux, ou sélectionner le lien barre de navigation WebJobs en haut de la page pour afficher les journaux d’une autre tâche WebJob.
État des tâches WebJob
Voici une liste d’états webjob courants :
- Initialisation : l’application a démarré et la tâche web passe par son processus d’initialisation.
- Lancement : Le WebJob est en cours de démarrage.
- En cours d’exécution : La tâche web est en cours d’exécution.
- PendingRestart : une tâche web continue s’arrête en moins de deux minutes depuis son démarrage pour une raison quelconque, et App Service attend 60 secondes avant de redémarrer la tâche web. Si le WebJob continue se termine après la marque de deux minutes, App Service n’attend pas les 60 secondes et redémarre immédiatement le WebJob.
- Arrêté : La tâche web a été arrêtée (généralement à partir du portail Azure) et n’est actuellement pas en cours d’exécution et ne s’exécute pas tant que vous ne l’exécutez pas manuellement, même pour une tâche web continue ou planifiée.
- Abandonnée : cela peut se produire pour de nombreuses raisons, par exemple lorsqu’une tâche WebJob de longue durée atteint le marqueur de délai d’expiration.