Tutorial: Inserción de una imagen de contenedor actualizada en un registro de contenedor con replicación geográfica para implementaciones de aplicaciones web regionalesTutorial: Push an updated container image to a geo-replicated container registry for regional web app deployments

Esta es la tercera parte de una serie de tutoriales de tres partes.This is part three in a three-part tutorial series. En el tutorial anterior, la replicación geográfica se configuró para dos implementaciones regionales de aplicaciones web diferentes.In the previous tutorial, geo-replication was configured for two different regional Web App deployments. En este tutorial, primero modifique la aplicación, luego cree una nueva imagen de contenedor e insértela en el registro con replicación geográfica.In this tutorial, you first modify the application, then build a new container image and push it to your geo-replicated registry. Por último, vea el campo implementado automáticamente por los webhooks de Azure Container Registry en ambas instancias de aplicaciones web.Finally, you view the change, deployed automatically by Azure Container Registry webhooks, in both Web App instances.

En este tutorial, parte final de la serie, se realizan las siguientes operaciones:In this tutorial, the final part in the series:

  • Modificación del HTML de la aplicación webModify the web application HTML
  • Creación y etiquetado de la imagen de DockerBuild and tag the Docker image
  • Inserción del cambio en Azure Container RegistryPush the change to Azure Container Registry
  • Visualización de la aplicación actualizada en dos regiones diferentesView the updated app in two different regions

Si aún no ha configurado las dos implementaciones regionales de Web App for Containers, vuelva al tutorial anterior de la serie, Implementación de la aplicación web desde Azure Container Registry.If you've not yet configured the two Web App for Containers regional deployments, return to the previous tutorial in the series, Deploy web app from Azure Container Registry.

Modificación de la aplicación webModify the web application

En este paso, realice un cambio en la aplicación web que tenga una alta visibilidad después de insertar la imagen de contenedor actualizada en Azure Container Registry.In this step, make a change to the web application that will be highly visible once you push the updated container image to Azure Container Registry.

Busque el archivo AcrHelloworld/Views/Home/Index.cshtml en el origen de la aplicación que clonó a partir de GitHub en un tutorial anterior y ábralo en el editor de texto que prefiera.Find the AcrHelloworld/Views/Home/Index.cshtml file in the application source you cloned from GitHub in a previous tutorial and open it in your favorite text editor. Agregue la siguiente línea a continuación de la línea <h1> existente:Add the following line below the existing <h1> line:

<h1>MODIFIED</h1>

El Index.cshtml modificado debería tener el mismo aspecto para:Your modified Index.cshtml should look similar to:

@{
    ViewData["Title"] = "Azure Container Registry :: Geo-replication";
}
<style>
    body {
        background-image: url('images/azure-regions.png');
        background-size: cover;
    }
    .footer {
        position: fixed;
        bottom: 0px;
        width: 100%;
    }
</style>

<h1 style="text-align:center;color:blue">Hello World from:  @ViewData["REGION"]</h1>
<h1>MODIFIED</h1>
<div class="footer">
    <ul>
        <li>Registry URL: @ViewData["REGISTRYURL"]</li>
        <li>Registry IP: @ViewData["REGISTRYIP"]</li>
        <li>Registry Region: @ViewData["REGION"]</li>
    </ul>
</div>

Recompilación de la imagenRebuild the image

Ahora que ha actualizado la aplicación web, recompile la imagen de contenedor.Now that you've updated the web application, rebuild its container image. Igual que se hizo antes, use el nombre de imagen completo, incluyendo el nombre de dominio completo (FQDN) del servidor de inicio de sesión, para la etiqueta:As before, use the fully qualified image name, including the login server's fully qualified domain name (FQDN), for the tag:

docker build . -f ./AcrHelloworld/Dockerfile -t <acrName>.azurecr.io/acr-helloworld:v1

Inserción de imágenes en Azure Container RegistryPush image to Azure Container Registry

A continuación, inserte la imagen del contenedor actualizada acr-helloworld en el registro con replicación geográfica.Next, push the updated acr-helloworld container image to your geo-replicated registry. Aquí está ejecutando un comando docker push único para implementar la imagen actualizada en las réplicas del registro en las regiones Oeste de EE. UU. y Este de EE. UU.Here, you're executing a single docker push command to deploy the updated image to the registry replicas in both the West US and East US regions.

docker push <acrName>.azurecr.io/acr-helloworld:v1

La salida docker push debe ser similar a la siguiente:Your docker push output should be similar to the following:

$ docker push uniqueregistryname.azurecr.io/acr-helloworld:v1
The push refers to a repository [uniqueregistryname.azurecr.io/acr-helloworld]
5b9454e91555: Pushed
d6803756744a: Layer already exists
b7b1f3a15779: Layer already exists
a89567dff12d: Layer already exists
59c7b561ff56: Layer already exists
9a2f9413d9e4: Layer already exists
a75caa09eb1f: Layer already exists
v1: digest: sha256:4c3f2211569346fbe2d1006c18cbea2a4a9dcc1eb3a078608cef70d3a186ec7a size: 1792

Visualización de los registros de webhookView the webhook logs

Mientras se está replicando la imagen, puede ver el webhook de Azure Container Registry que se desencadena.While the image is being replicated, you can see the Azure Container Registry webhooks being triggered.

Para ver los webhooks regionales que se crearon al implementar el contenedor en Web Apps for Containers en un tutorial anterior, vaya hasta el registro de contenedor en Azure Portal y, luego, seleccione Webhooks en SERVICIOS.To see the regional webhooks that were created when you deployed the container to Web Apps for Containers in a previous tutorial, navigate to your container registry in the Azure portal, then select Webhooks under SERVICES.

Webhooks de registro de contenedor en Azure Portal

Seleccione cada Webhook para ver el historial de sus llamadas y respuestas.Select each Webhook to see the history of its calls and responses. Debería ver una fila para la acción de inserción en los registros de ambos webhooks.You should see a row for the push action in the logs of both Webhooks. En este caso, el registro para el webhook que se encuentra en la región Oeste de EE. UU. se muestra en la acción de inserción desencadenada por docker push en el paso anterior:Here, the log for the Webhook located in the West US region shows the push action triggered by the docker push in the previous step:

Webhooks de registro de contenedor en Azure portal (Oeste de EE. UU.)

Visualización de la aplicación web actualizadaView the updated web app

Los webhooks notifican a las aplicaciones web que se ha insertado una nueva imagen en el registro, que implementa automáticamente el contenedor actualizado en las dos aplicaciones web regionales.The Webhooks notify Web Apps that a new image has been pushed to the registry, which automatically deploys the updated container to the two regional web apps.

Compruebe que la aplicación se ha actualizado en ambas implementaciones. Para ello, vaya a ambas implementaciones de aplicaciones web regionales en el explorador web.Verify that the application has been updated in both deployments by navigating to both regional Web App deployments in your web browser. Como recordatorio, puede buscar la dirección URL de la aplicación web implementada en la parte superior derecha de cada pestaña de información general de App Service.As a reminder, you can find the URL for the deployed web app in the top-right of each App Service overview tab.

Información general de App Service en Azure Portal

Para ver la aplicación actualizada, seleccione el vínculo en la descripción general de App Service.To see the updated application, select the link in the App Service overview. Esta es una vista de ejemplo de la aplicación en ejecución en el Oeste de EE. UU.:Here's an example view of the app running in West US:

Vista del explorador de la aplicación web modificada que se ejecuta en la región del Oeste de EE. UU.

Compruebe que la imagen de contenedor actualizada también se implementó en la implementación del Este de EE. UU. viéndola en el explorador.Verify that the updated container image was also deployed to the East US deployment by viewing it in your browser.

Vista del explorador de la aplicación web modificada que se ejecuta en la región del Este de EE. UU.

Con una sola docker push, actualizará automáticamente la aplicación web que se ejecuta en ambas implementaciones regionales de Web App.With a single docker push, you've automatically updated the web application running in both regional Web App deployments. Asimismo, Azure Container Registry proporciona las imágenes de contenedor de los repositorios que estén más cerca de cada implementación.And, Azure Container Registry served the container images from the repositories located closest to each deployment.

Pasos siguientesNext steps

En este tutorial, se actualiza y se inserta una nueva versión del contenedor de aplicación web en el registro con replicación geográfica.In this tutorial, you updated and pushed a new version of the web application container to your geo-replicated registry. Los webhooks en Azure Container Registry notifican a Web App for Containers la actualización, lo que activó una extracción local de las replicas del registro más cercanas.Webhooks in Azure Container Registry notified Web Apps for Containers of the update, which triggered a local pull from the nearest registry replica.

ACR Build: compilación automatizada de imágenes y parchesACR Build: Automated image build and patch

Además de la replicación geográfica, ACR Build es otra característica de Azure Container Registry que puede ayudarle a optimizar la canalización de la implementación de contenedores.In addition to geo-replication, ACR Build is another feature of Azure Container Registry that can help optimize your container deployment pipeline. Comience con la información general de ACR Build para hacerse una idea de sus capacidades:Start with the ACR Build overview to get an idea of its capabilities:

Automatización de aplicación de revisiones de sistema operativo y marco con ACR BuildAutomate OS and framework patching with ACR Build