Tutorial: Enviar por push uma imagem de contêiner atualizada para um registro de contêiner replicado geograficamente para implantações de aplicativos Web regionais
Esta é a parte três de um tutorial de três partes. No tutorial anterior, a georreplicação foi configurada para duas implementações regionais de Aplicações Web. 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. Finalmente, verá a alteração, implementada automaticamente pelos webhooks do Azure Container Registry, em ambas as instâncias de Aplicações Web.
Neste tutorial, a última parte da série:
- Modificar o HTML da aplicação Web
- Criar e etiquetar a imagem do Docker
- Enviar a alteração para o Azure Container Registry
- Ver a aplicação atualizada em duas regiões diferentes
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.
Modificar a aplicação Web
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.
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. Adicione a seguinte linha abaixo da linha <h1>
existente:
<h1>MODIFIED</h1>
O seu Index.cshtml
modificado deverá ter um aspeto semelhante a:
@{
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 imagem
Agora que atualizou a aplicação Web, recrie a respetiva imagem de contentor. 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:
docker build . -f ./AcrHelloworld/Dockerfile -t <acrName>.azurecr.io/acr-helloworld:v1
Enviar imagens para o Azure Container Registry
Em seguida, envie a imagem de contentor acr-helloworld atualizada para o seu registo georreplicado. 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.
docker push <acrName>.azurecr.io/acr-helloworld:v1
O resultado docker push
deve ser semelhante ao seguinte:
$ 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 webhooks
Enquanto a imagem está a ser replicada, pode ver os webhooks do Azure Container Registry a serem acionados.
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.
Selecione cada Webhook para ver o histórico de chamadas e respostas do mesmo. Deverá ver uma linha para a ação de envio nos registos de ambos os 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:
Ver a aplicação Web atualizada
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.
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. 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.
Para ver a atualização aplicada, selecione a ligação na descrição geral do Serviço de Aplicações do Azure. Eis uma vista de exemplo da aplicação 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.
Com um único docker push
, atualizou automaticamente a aplicação Web em execução em ambas as implementações de Aplicações Web regionais. Além disso, o Azure Container Registry apresentou as imagens de contentor dos repositórios mais próximos de cada implementação.
Próximos passos
Neste tutorial, atualizou e enviou uma nova versão do contentor de aplicações Web para o seu registo georreplicado. 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.
ACR Build: compilação e correção automáticas de imagens
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. Comece com a descrição geral do ACR Build para ter uma ideia das respetivas capacidades:
Automate OS and framework patching with ACR Build (Automatizar a aplicação de patches do SO e de aplicações com o ACR Build)