Actualización de la imagen y reimplementación automática de la aplicación web

Completado

La implementación continua es una característica clave para muchas organizaciones de rápido crecimiento. Deben implementar la versión más reciente del software rápidamente, pero con el mínimo de esfuerzo.

En el escenario de ejemplo, el equipo de desarrollo agrega regularmente nuevas características y mejoras a la aplicación web. Por esta razón, el equipo ha decidido adoptar un enfoque de implementación continua.

En esta unidad, va a configurar la implementación continua de una aplicación web que usa una imagen de Azure Container Registry.

¿Qué es un webhook?

Azure App Service admite la implementación continua mediante webhooks. Un webhook es un servicio ofrecido por Container Registry. Los servicios y aplicaciones pueden suscribirse al webhook para recibir notificaciones sobre actualizaciones de imágenes en el registro. Una aplicación web que usa App Service puede suscribirse a un webhook de Container Registry para recibir notificaciones sobre actualizaciones de la imagen que contiene la aplicación web. Cuando la imagen se actualiza y App Service recibe una notificación, la aplicación reinicia automáticamente el sitio y extrae la última versión de la imagen.

¿Qué es la característica tareas de Azure Container Registry?

La característica tareas de Container Registry se usa para recompilar la imagen siempre que su código fuente cambia automáticamente. Puede configurar una tarea de Container Registry para supervisar el repositorio de GitHub que contiene el código y desencadenar una compilación cada vez que cambie. Si la compilación finaliza correctamente, Container Registry puede almacenar la imagen en el repositorio. Si la aplicación web está configurada para una integración continua en App Service, recibe una notificación a través del webhook y actualiza la aplicación.

Vamos a usar estas dos características para habilitar la integración continua desde App Service.

Habilitación de la integración continua desde App Service

La página Configuración del contenedor de un recurso de App Service en Azure Portal automatiza la configuración de la integración continua. Si activa Implementación continua, App Service configura un webhook en el registro de contenedor para notificar a un punto de conexión de App Service. Las notificaciones del registro que llegan a este punto de conexión hacen que la aplicación se reinicie y extraiga la última versión de la imagen de contenedor.

Ampliación de la integración continua al control de código fuente mediante una tarea de Azure Container Registry

Las tareas de Container Registry se deben crear desde la línea de comandos. A diferencia del comando az acr build que ejecutamos anteriormente para compilar la imagen, el comando az acr task create crea y registra una tarea de larga duración.

El siguiente comando muestra cómo crear una tarea llamada buildwebapp. La tarea supervisa el repositorio de GitHub de la aplicación web de ejemplo que utiliza este módulo. Cada vez que se confirma un cambio, la tarea compila la imagen de Docker webimage a partir del código fuente en GitHub y la almacena en el registro en Container Registry. Antes de ejecutar este comando, deberá crear un token de acceso personal de GitHub con permisos para crear un webhook en su repositorio. En el caso de los repositorios privados, el token también deberá disponer de permisos de lectura completos para el repositorio en cuestión.

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>