Aggiornare l'immagine e ridistribuire automaticamente l'app Web
La distribuzione continua è un aspetto fondamentale per molte organizzazioni in rapida evoluzione È necessario distribuire rapidamente la versione più recente del software, ma con problemi minimi.
Nello scenario di esempio, il team di sviluppo aggiunge regolarmente nuove funzionalità e miglioramenti all'app Web. Per questo motivo, il team ha deciso di adottare un approccio di distribuzione continua.
In questa unità si configurerà la distribuzione continua di un'app Web che usa un'immagine nel Registro Azure Container.
Che cos'è un webhook?
Servizio app di Azure supporta la distribuzione continua per mezzo di webhook. Un webhook è un servizio offerto dal Registro Container. Servizi e applicazioni possono sottoscrivere il webhook per ricevere notifiche sugli aggiornamenti alle immagini nel registro. Un'app Web che usa il servizio app può sottoscrivere un webhook del Registro Container per ricevere notifiche sugli aggiornamenti all'immagine che contiene l'app Web. Quando l'immagine viene aggiornata e il servizio app riceve una notifica, l'app riavvia automaticamente il sito ed esegue il pull dell'ultima versione dell'immagine.
Che cos'è la funzionalità Attività di Registro Azure Container?
La funzionalità Attività del Registro Container viene usata per ricompilare l'immagine ogni volta che il relativo codice sorgente cambia automaticamente. Si può configurare un'attività del Registro Container per monitorare il repository di GitHub che contiene il codice e attivare una compilazione ogni volta che viene modificato. Se la compilazione termina correttamente, il Registro Container può archiviare l'immagine nel repository. Se l'app Web è configurata per l'integrazione continua nel servizio app, riceverà una notifica tramite il webhook e aggiornerà l'app.
Si vedrà ora come usare queste due funzionalità per abilitare l'integrazione continua dal servizio app.
Abilitare l'integrazione continua dal servizio app
La pagina del Centro distribuzione di una risorsa di Servizio app nel portale di Azure automatizza la configurazione dell’integrazione continua. Se si attiva la Distribuzione continua, il servizio app configura un webhook nel Registro Container per l'invio di notifiche a un endpoint del servizio app. Quando l'endpoint riceve notifiche dal registro, l'app riavvia ed esegue il pull della versione più recente dell'immagine del contenitore.
Estendere l'integrazione continua al controllo del codice sorgente usando un'attività del Registro Azure Container
È necessario creare attività del Registro Container dalla riga di comando. A differenza del comando az acr build
eseguito in precedenza per compilare l'immagine, il comando az acr task create
crea e registra un'attività di lunga durata.
Il comando seguente mostra come creare un'attività denominata buildwebapp. L'attività monitora l'app Web di esempio usata in questo modulo nel repository GitHub. Ogni volta che viene eseguito il commit di una modifica, l'attività compila l'immagine Docker webimage
dal codice sorgente in GitHub e la archivia nel registro dell'utente nel Registro Container. Prima di eseguire questo comando, è necessario creare un token di accesso personale in GitHub con autorizzazioni per creare un webhook nel repository. Per i repository privati, il token dovrà anche avere autorizzazioni di lettura del repository complete.
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>