Aktualisieren des Image und automatisches erneutes Bereitstellen der Web-App

Abgeschlossen

Continuous Deployment ist ein wichtiges Feature für viele schnelllebige Organisationen. Diese Organisationen müssen die neueste Version ihrer Software mit geringstem Aufwand schnell bereitstellen.

Im Beispielszenario fügt das Entwicklerteam der Web-App regelmäßig neue Features und Erweiterungen hinzu. Aus diesem Grund hat sich das Team dafür entschieden, einen Continuous-Deployment-Ansatz zu nutzen.

In dieser Lerneinheit konfigurieren Sie Continuous Deployment für eine Web-App, die ein Image in Azure Container Registry verwendet.

Was ist ein Webhook?

Azure App Service unterstützt Continuous Deployment mithilfe von Webhooks. Ein Webhook ist ein von Azure Container Registry bereitgestellter Dienst. Dienste und Anwendungen können den Webhook abonnieren, um Benachrichtigungen zu Aktualisierungen von Images in der Registrierung zu erhalten. Eine Web-App, die App Service verwendet, kann einen Azure Container Registry-Webhook abonnieren, um Benachrichtigungen zu Updates des Images zu erhalten, das die Web-App enthält. Wenn ein Update für das Image durchgeführt wird und App Service eine Benachrichtigung empfängt, startet Ihre App die Website automatisch neu und ruft die neueste Version des Images per Pull ab.

Was ist das Container Registry-Feature „Tasks“?

Sie können das Feature Tasks von Container Registry verwenden, damit das Image immer automatisch neu erstellt wird, wenn der Quellcode geändert wird. Sie können einen Container Registry-Task konfigurieren, um das GitHub-Repository zu überwachen, das Ihren Code enthält, und bei jeder Änderung einen Buildvorgang auszulösen. Wenn der Buildvorgang erfolgreich abgeschlossen wird, kann Container Registry das Image im Repository speichern. Wenn Ihre Web-App in App Service für Continuous Integration eingerichtet ist, erhält sie über den Webhook eine Benachrichtigung und führt ein Update für die App aus.

Wir verwenden diese beiden Features, um in App Service Continuous Integration zu aktivieren.

Aktivieren von Continuous Integration in App Service

Die Seite Containereinstellungen einer App Service-Ressource im Azure-Portal dient der Automatisierung der Einrichtung von Continuous Integration. Wenn Sie Continuous Deployment aktivieren, konfiguriert App Service einen Webhook in Ihrer Containerregistrierung, um einen App Service-Endpunkt zu benachrichtigen. Benachrichtigungen aus der Registrierung, die diesen Endpunkt erreichen, veranlassen Ihre App zum Neustart und zum Abrufen der neuesten Version des Containerimage per Pull.

Erweitern von Continuous Integration auf die Quellcodeverwaltung mithilfe eines Azure Container Registry-Tasks

Sie müssen Container Registry-Aufgaben über die Befehlszeile erstellen. Im Gegensatz zum Befehl az acr build, den Sie zuvor zum Erstellen des Images ausgeführt haben, wird mit dem Befehl az acr task create ein langlebiger Task erstellt und registriert.

Der folgende Befehl veranschaulicht, wie Sie einen Task namens buildwebapp erstellen. Die Aufgabe dient zur Überwachung des GitHub-Repositorys für die in diesem Modul verwendete Beispiel-Web-App. Jedes Mal, wenn eine Änderung committet wird, erstellt der Task das Docker-Image webimage aus dem Quellcode in GitHub und speichert es in Ihrer Registrierung in Container Registry. Bevor Sie diesen Befehl ausführen, müssen Sie ein persönliches GitHub-Zugriffstoken mit Berechtigungen zum Erstellen eines Webhooks in Ihrem Repository erstellen. Für private Repositorys benötigt das Token ebenso die vollständigen Leseberechtigungen für das Repository.

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>