Tutorial: Empurre uma imagem de recipiente atualizada para um registo de contentores geo-replicados para implementações regionais de aplicações webTutorial: Push an updated container image to a geo-replicated container registry for regional web app deployments

Esta é a parte três de um tutorial de três partes.This is part three in a three-part tutorial series. No tutorial anterior, a georreplicação foi configurada para duas implementações regionais de Aplicações Web.In the previous tutorial, geo-replication was configured for two different regional Web App deployments. Neste tutorial, comece por modificar a aplicação e, em seguida, crie uma nova imagem de contentor e envie-a para o seu registo georreplicado.In this tutorial, you first modify the application, then build a new container image and push it to your geo-replicated registry. Finalmente, verá a alteração, implementada automaticamente pelos webhooks do Azure Container Registry, em ambas as instâncias de Aplicações Web.Finally, you view the change, deployed automatically by Azure Container Registry webhooks, in both Web App instances.

Neste tutorial, a última parte da série:In this tutorial, the final part in the series:

  • Modificar o HTML da aplicação WebModify the web application HTML
  • Criar e etiquetar a imagem do DockerBuild and tag the Docker image
  • Enviar a alteração para o Azure Container RegistryPush the change to Azure Container Registry
  • Ver a aplicação atualizada em duas regiões diferentesView the updated app in two different regions

Se ainda não configurou as duas implementações regionais da Aplicação Web para Contentores, regresse ao tutorial anterior na série, Implementar a aplicação Web a partir do 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.

Modificar a aplicação WebModify the web application

Neste passo, efetue uma alteração à aplicação Web que será altamente visível quando enviar a imagem de contentor atualizada para o 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.

Localize o ficheiro AcrHelloworld/Views/Home/Index.cshtml na origem de aplicação que clonou do GitHub num tutorial anterior e abra-o no seu editor de texto favorito.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. Adicione a seguinte linha abaixo da linha <h1> existente:Add the following line below the existing <h1> line:

<h1>MODIFIED</h1>

O seu Index.cshtml modificado deverá ter um aspeto semelhante a: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>

Recriar a imagemRebuild the image

Agora que atualizou a aplicação Web, recrie a respetiva imagem de contentor.Now that you've updated the web application, rebuild its container image. Conforme anteriormente, utilize o nome de imagem completamente qualificado, incluindo o nome de domínio completamente qualificado (FQDN) do servidor de início de sessão, para a 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

Enviar imagens para o Azure Container RegistryPush image to Azure Container Registry

Em seguida, envie a imagem de contentor acr-helloworld atualizada para o seu registo georreplicado.Next, push the updated acr-helloworld container image to your geo-replicated registry. Aqui, vai executar um único comando docker push para implementar a imagem atualizada nas réplicas de registo nas regiões E.U.A. Oeste e E.U.A. Leste.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

O resultado docker push deve ser semelhante ao seguinte: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

Ver os registos de webhooksView the webhook logs

Enquanto a imagem está a ser replicada, pode ver os webhooks do Azure Container Registry a serem acionados.While the image is being replicated, you can see the Azure Container Registry webhooks being triggered.

Para ver os webhooks regionais que foram criados quando implementou o container nas Aplicações Web para Contentores num tutorial anterior, navegue para o seu registo de contentor no portal do Azure e, em seguida, selecione Webhooks em SERVIÇOS.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 registo de contentor no portal do Azure

Selecione cada Webhook para ver o histórico de chamadas e respostas do mesmo.Select each Webhook to see the history of its calls and responses. Deverá ver uma linha para a ação de envio nos registos de ambos os Webhooks.You should see a row for the push action in the logs of both Webhooks. Neste caso, o registo do Webhook localizado na região E.U.A. Oeste mostra a ação de envio acionada pelo docker push no passo 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:

Registo de Webhooks de registo de contentor no portal do Azure (E.U.A. Oeste)

Ver a aplicação Web atualizadaView the updated web app

Os Webhooks notificam as Aplicações Web de que uma nova imagem foi enviada para o registo, o que implementa automaticamente o contentor atualizado para duas aplicações Web regionais.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.

Certifique-se de que a aplicação foi atualizada em ambas as implementações ao navegar para ambas as implementações de Aplicações Web regionais no seu browser.Verify that the application has been updated in both deployments by navigating to both regional Web App deployments in your web browser. Lembre-se de que pode encontrar o URL da aplicação Web implementada no canto superior direito de cada separador de descrição geral do Serviço de Aplicações do Azure.As a reminder, you can find the URL for the deployed web app in the top-right of each App Service overview tab.

Descrição geral do Serviço de Aplicações do Azure no portal do Azure

Para ver a atualização aplicada, selecione a ligação na descrição geral do Serviço de Aplicações do Azure.To see the updated application, select the link in the App Service overview. Eis uma vista de exemplo da aplicação executada na região E.U.A. Oeste:Here's an example view of the app running in West US:

Vista de browser da aplicação Web modificada executada na região E.U.A. Oeste

Verifique se a imagem de contentor atualizada também foi implementada na implementação E.U.A. Leste ao vê-la no seu browser.Verify that the updated container image was also deployed to the East US deployment by viewing it in your browser.

Vista de browser da aplicação Web modificada executada na região E.U.A. Leste

Com um único docker push, atualizou automaticamente a aplicação Web em execução em ambas as implementações de Aplicações Web regionais.With a single docker push, you've automatically updated the web application running in both regional Web App deployments. Além disso, o Azure Container Registry apresentou as imagens de contentor dos repositórios mais próximos de cada implementação.And, Azure Container Registry served the container images from the repositories located closest to each deployment.

Passos seguintesNext steps

Neste tutorial, atualizou e enviou uma nova versão do contentor de aplicações Web para o seu registo georreplicado.In this tutorial, you updated and pushed a new version of the web application container to your geo-replicated registry. Os Webhooks no Azure Container Registry notificaram as Aplicações Web para Contentores da atualização, o que acionou uma solicitação local da réplica do registo mais próximo.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: compilação e correção automáticas de imagensACR Build: Automated image build and patch

Além da georreplicação, o ACR Build é outra funcionalidade do Azure Container Registry que pode ajudar a otimizar o pipeline de implementação do contentor.In addition to geo-replication, ACR Build is another feature of Azure Container Registry that can help optimize your container deployment pipeline. Comece com a descrição geral do ACR Build para ter uma ideia das respetivas capacidades:Start with the ACR Build overview to get an idea of its capabilities:

Automate OS and framework patching with ACR Build (Automatizar a aplicação de patches do SO e de aplicações com o ACR Build)Automate OS and framework patching with ACR Build