Aktualizowanie obrazu i automatyczne ponowne wdrażanie aplikacji internetowej
Ciągłe wdrażanie to kluczowa funkcja w wielu szybko zmieniających się organizacjach. Muszą szybko wdrożyć najnowszą wersję swojego oprogramowania, ale z minimalnym zamieszaniem.
W przykładowym scenariuszu zespół deweloperów regularnie dodaje nowe funkcje i ulepszenia do aplikacji internetowej. Z tego powodu podjęto decyzję o przyjęciu podejścia obejmującego ciągłe wdrażanie.
W ramach tej lekcji skonfigurujesz ciągłe wdrażanie aplikacji internetowej, która używa obrazu w usłudze Azure Container Registry.
Co to jest element webhook?
Usługa Azure App Service obsługuje ciągłe wdrażanie przy użyciu elementów webhook. Element webhook to usługa oferowana przez usługę Container Registry. Usługi i aplikacje mogą subskrybować element webhook, aby otrzymywać powiadomienia o aktualizacjach obrazów w rejestrze. Aplikacja internetowa korzystająca z usługi App Service może subskrybować element webhook usługi Container Registry w celu otrzymywania powiadomień o aktualizacjach obrazu zawierającego aplikację internetową. Gdy obraz zostanie zaktualizowany, a usługa App Service otrzyma powiadomienie, aplikacja automatycznie ponownie uruchomia witrynę i ściąga najnowszą wersję obrazu.
Co to jest funkcja zadań usługi Azure Container Registry?
Funkcja zadań usługi Container Registry służy do automatycznego ponownego kompilowania obrazu zawsze wtedy, gdy zmieni się jego kod źródłowy. Można skonfigurować zadanie usługi Container Registry tak, aby monitorowało repozytorium GitHub zawierające kod i wyzwalało kompilację po jego każdej zmianie. Jeśli kompilacja zakończy się pomyślnie, usługa Container Registry będzie mogła przechowywać obraz w repozytorium. Jeśli aplikacja internetowa zostanie skonfigurowana w celu ciągłej integracji w usłudze App Service, będzie otrzymywać powiadomienie za pomocą elementu webhook i aktualizować aplikację.
Skorzystajmy z tych dwóch funkcji, aby umożliwić ciągłą integrację z usługą App Service.
Włączanie ciągłej integracji z poziomu usługi App Service
Strona Centrum wdrażania zasobu usługi App Service w witrynie Azure Portal automatyzuje konfigurację ciągłej integracji. Jeśli włączysz ciągłe wdrażanie, usługa App Service skonfiguruje element webhook w rejestrze kontenerów w celu powiadomienia punktu końcowego usługi App Service. Powiadomienia z rejestru, które dotrą do tego punktu końcowego, powodują ponowne uruchomienie aplikacji i ściągnięcie najnowszej wersji obrazu kontenera.
Rozszerzanie ciągłej integracji na kontrolę źródła przy użyciu zadania usługi Azure Container Registry
Zadania usługi Container Registry należy utworzyć z poziomu wiersza polecenia. az acr build
W przeciwieństwie do polecenia, które uruchomiono wcześniej w celu skompilowania obrazu, az acr task create
polecenie tworzy i rejestruje długotrwałe zadanie.
Następujące polecenie pokazuje, jak utworzyć zadanie o nazwie buildwebapp. Zadanie monitoruje repozytorium GitHub dla przykładowej aplikacji internetowej używanej w tym module. Po każdym zatwierdzeniu zmiany zadanie kompiluje obraz webimage
platformy Docker na podstawie kodu źródłowego w usłudze GitHub, a następnie zapisuje go w rejestrze w usłudze Container Registry. Przed uruchomieniem tego polecenia musisz utworzyć osobisty token dostępu GitHub z uprawnieniami do tworzenia elementu webhook w repozytorium. W przypadku repozytoriów prywatnych token musi też mieć uprawnienia odczytu do całego repozytorium.
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>