Uppdatera avbildningen och distribuera automatiskt om webbappen

Slutförd

Kontinuerlig distribution är en viktig funktion för många snabbrörliga organisationer. De måste snabbt distribuera den senaste versionen av sin programvara, men med minsta möjliga ansträngning.

I exempelscenariot lägger utvecklingsteamet regelbundet till nya funktioner och förbättringar till webbappen. Därför har teamet bestämt sig för att införa en metod för kontinuerlig distribution.

I den här kursdelen ska du konfigurera kontinuerlig distribution av en webbapp som använder en avbildning i Azure Container Registry.

Vad är en webhook?

Azure App Service stöder kontinuerlig distribution med webhookar. En webhook är en tjänst som erbjuds av Container Registry. Tjänster och program kan prenumerera på webhooken för att få meddelanden om uppdateringar av avbildningar i registret. En webbapp som använder App Service kan prenumerera på en Container Registry-webhook för att ta emot meddelanden om uppdateringar av avbildningen som innehåller webbappen. När avbildningen har uppdaterats och App Service får ett meddelande, kommer din app automatiskt starta om webbplatsen och hämta den senaste versionen av avbildningen.

Vad är funktionen Azure Container Registry-uppgifter?

Du kan använda uppgiftsfunktionen i Container Registry för att automatiskt återskapa avbildningen varje gång källkoden ändras. Du konfigurerar en Container Registry-uppgift för att övervaka GitHub-lagringsplatsen som innehåller din kod och för att utlösa ett versionsbygge varje gång den ändras. Om bygget slutförs utan problem kan Container Registry lagra avbildningen på lagringsplatsen. Om din webbapp har konfigurerats för kontinuerlig integrering i App Service, får den ett meddelande via webhooken och uppdaterar appen.

Vi använder de här två funktionerna för att aktivera kontinuerlig integrering från App Service.

Aktivera kontinuerlig integrering från App Service

Sidan Containerinställningar för en App Service-resurs i Azure-portalen automatiserar konfigurationen av kontinuerlig integrering. Om du aktiverar Kontinuerlig distribution, konfigurerar App Service en webhook i containerregistret för att meddela en App Service-slutpunkt. Meddelanden från registret som når den här slutpunkten får din app att starta om och hämta den senaste versionen av containeravbildningen.

Utöka kontinuerlig integrering till källkontroll med hjälp av en Azure Container Registry-uppgift

Du måste skapa containerregisteruppgifter från kommandoraden. Till skillnad från kommandot az acr build som vi körde tidigare för att skapa avbildningen az acr task create skapar och registrerar kommandot en långlivad uppgift.

Följande kommando visar hur du skapar en uppgift som heter buildwebapp. Uppgiften övervakar GitHub-lagringsplatsen för exempelwebbappen som den här modulen använder. Varje gång en ändring checkas in, skapar uppgiften Docker-avbildningen webimage från källkoden i GitHub och lagrar den i ditt register i Container Registry. Innan du kör det här kommandot måste du skapa en personlig åtkomsttoken för GitHub med behörighet att skapa en webhook på lagringsplatsen. För privata lagringsplatser behöver token även fullständig läsbehörighet för lagringsplatsen.

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>