Atualizar a imagem e reimplantar automaticamente o aplicativo Web

Concluído

A implantação contínua é um recurso importante para muitas organizações dinâmicas. Essas organizações precisam implantar a versão mais recente de seu software de maneira rápida, mas com o mínimo de confusão.

No cenário exemplificado, a equipe de desenvolvimento adiciona com regularidade novos recursos e aprimoramentos ao aplicativo Web. Por esse motivo, a equipe decidiu adotar uma abordagem de implantação contínua.

Nesta unidade, você configurará a implantação contínua de um aplicativo Web que usa uma imagem no Registro de Contêiner do Azure.

O que é um webhook?

O Serviço de Aplicativo do Azure é compatível com a implantação contínua usando webhooks. Um webhook é um serviço oferecido pelo Registro de Contêiner. Serviços e aplicativos podem assinar um webhook para receber notificações sobre atualizações de imagens no registro. Um aplicativo Web que usa o Serviço de Aplicativo pode assinar um webhook do Registro de Contêiner para receber notificações sobre atualizações feitas à imagem que contém o aplicativo Web. Quando a imagem é atualizada e o Serviço de Aplicativo recebe uma notificação, o aplicativo reinicia o site automaticamente e busca a versão mais recente da imagem.

O que é o recurso de tarefas do Registro de Contêiner do Azure?

Você usa o recurso de tarefas do Registro de Contêiner para recriar sua imagem sempre que seu código-fonte é alterado automaticamente. Você configura uma tarefa do Registro de Contêiner para monitorar o repositório do GitHub que contém o código e disparar um build sempre que esse código for alterado. Se o build for concluído com êxito, o Registro de Contêiner poderá armazenar a imagem no repositório. Se o seu aplicativo Web do Serviço de Aplicativo for configurado para a integração contínua, ele receberá uma notificação por meio do webhook e atualizará o aplicativo.

Vamos usar esses dois recursos para habilitar a integração contínua no Serviço de Aplicativo.

Habilitar a integração contínua no Serviço de Aplicativo

A página de Configurações do contêiner de um recurso de Serviço de Aplicativo, no portal do Azure, automatiza a configuração da integração contínua. Ao ativar a Implantação contínua, o Serviço de Aplicativo configura um webhook em seu registro de contêiner para notificar um ponto de extremidade do Serviço de Aplicativo. As notificações do registro que chegarem a esse ponto de extremidade farão com que seu aplicativo reinicie e busque a versão mais recente da imagem de contêiner.

Estender a integração contínua ao controle do código-fonte usando uma tarefa do Registro de Contêiner do Azure

Você deve criar tarefas do Registro de Contêiner na linha de comando. Ao contrário do comando az acr build que foi executado anteriormente para criar a imagem, o comando az acr task create cria e registra uma tarefa de longa duração.

Os comandos a seguir mostram como criar uma tarefa chamada buildwebapp. A tarefa monitorará o repositório do GitHub do aplicativo Web do exemplo usado neste módulo. Sempre que há a confirmação (“commit”) de uma alteração, a tarefa compila a imagem do Docker webimage com base no código-fonte no GitHub e a armazena em seu registro no Registro de Contêiner. Antes de executar este comando, você precisará criar um token de acesso pessoal do GitHub com permissões para criar um webhook em seu repositório. Para repositórios particulares, o token também precisará de permissões completas de leitura do repositório.

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>