Mettre à jour l’image et redéployer automatiquement l’application web

Effectué

Le déploiement continu est une fonctionnalité essentielle pour de nombreuses organisations qui connaissent une évolution rapide. Elles doivent déployer la dernière version de leurs logiciels rapidement, mais avec un minimum de complications.

Dans l’exemple de scénario, l’équipe de développement ajoute régulièrement de nouvelles fonctionnalités et améliorations à l’application web. Pour cette raison, l’équipe a décidé d’adopter une approche de déploiement continu.

Dans cette unité, vous allez configurer le déploiement continu d’une application web qui utilise une image dans Azure Container Registry.

Qu’est-ce qu’un webhook ?

Azure App Service prend en charge le déploiement continu en utilisant des webhooks. Un webhook est un service offert par Container Registry. Les services et les applications peuvent s’abonner au webhook pour recevoir des notifications sur les mises à jour des images dans le registre. Une application web qui utilise App Service peut s’abonner à un webhook Container Registry pour recevoir des notifications sur les mises à jour de l’image contenant l’application web. Quand l’image est mise à jour et qu’App Service reçoit une notification, votre application redémarre automatiquement le site et extrait la dernière version de l’image.

Qu’est-ce que la fonctionnalité Tâches d’Azure Container Registry ?

Utilisez la fonctionnalité Tâches de Container Registry pour recréer votre image dès que son code source change automatiquement. Configurez une tâche Container Registry pour superviser le dépôt GitHub contenant votre code et déclencher une build à chaque fois qu’il change. Si la build se termine correctement, Container Registry peut stocker l’image dans le dépôt. Si votre application web est configurée pour l’intégration continue dans App Service, elle reçoit une notification via le webhook et met à jour l’application.

Nous allons utiliser ces deux fonctionnalités pour activer l’intégration continue à partir d’App Service.

Activer l’intégration continue à partir d’App Service

La page Paramètres du conteneur d’une ressource App Service dans le portail Azure permet d’automatiser la configuration de l’intégration continue. Si vous activez Déploiement continu, App Service configure un webhook dans votre registre de conteneurs pour notifier un point de terminaison App Service. Les notifications provenant du registre qui atteignent ce point de terminaison entraînent le redémarrage de votre application et l’extraction de la dernière version de l’image du conteneur.

Étendre l’intégration continue au contrôle de code source avec une tâche Azure Container Registry

Vous devez créer les tâches Container Registry à partir de la ligne de commande. Contrairement à la commande az acr build que nous avons exécutée précédemment pour générer notre image, la commande az acr task create crée et enregistre une tâche de longue durée.

La commande suivante montre comment créer une tâche appelée buildwebapp. La tâche monitore le dépôt GitHub pour trouver l’exemple d’application web utilisé par ce module. Chaque fois qu’un changement est validé, la tâche génère l’image Docker webimage à partir du code source dans GitHub et la stocke dans votre registre dans Container Registry. Avant d’exécuter cette commande, vous devez créer un jeton d’accès personnel GitHub avec des autorisations pour créer un webhook dans votre référentiel. Pour les référentiels privés, le jeton aura également besoin d’un accès total en lecture sur le référentiel.

az acr task create --registry <container_registry_name> --name buildwebapp --image webimage --context https://github.com/MicrosoftDocs/mslearn-deploy-run-container-app-service.git --file Dockerfile --git-access-token <access_token>