Atualizar a imagem e reimplementar automaticamente a aplicação Web

Concluído

A implementação contínua é uma funcionalidade chave para muitas organizações que estão em rápida evolução. Eles precisam implantar a versão mais recente de seu software rapidamente, mas com o mínimo de esforço.

No cenário de exemplo, a equipa de desenvolvimento adiciona novas funcionalidades e melhoramentos à aplicação Web regularmente. Por esse motivo, a equipa decidiu adotar uma abordagem de implementação contínua.

Nesta unidade, irá configurar a implementação contínua de uma aplicação Web que utiliza uma imagem no Azure Container Registry.

O que é um webhook?

O Serviço de Aplicações do Azure suporta a implementação contínua através de webhooks. Um webhook é um serviço oferecido pelo Container Registry. Os serviços e as aplicações podem subscrever o webhook para receberem notificações sobre atualizações de imagens no registo. 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 na imagem que contém o aplicativo Web. Quando a imagem é atualizada e o Serviço de Aplicações recebe uma notificação, a sua aplicação reinicia automaticamente o site e obtém a versão mais recente da imagem.

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

Pode utilizar a funcionalidade Tarefas do Azure Container Registry para reconstruir a imagem sempre que o seu código fonte for alterado automaticamente. Pode configurar uma tarefa do Container Registry para monitorizar o repositório do GitHub que contém o código e acionar uma compilação sempre que este for alterado. Se a compilação for concluída com êxito, o Container Registry pode armazenar a imagem no repositório. Se a sua aplicação Web for configurada para integração contínua no Serviço de Aplicações, receberá uma notificação através do webhook e a aplicação será atualizada.

Vamos utilizar essas duas funcionalidades para ativar a integração contínua do Serviço de Aplicações.

Ativar a integração contínua do Serviço de Aplicações

A página Centro de Implantação de um recurso do Serviço de Aplicativo no portal do Azure automatiza a configuração da integração contínua. Se ativar a Implementação Contínua, o Serviço de Aplicações configura um webhook no registo de contentor para notificar um ponto final do Serviço de Aplicações. As notificações do registo que alcançam este ponto final fazem com que a aplicação seja reiniciada e obtenha a versão mais recente da imagem de contentor.

Estenda 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 a partir da linha de comando. Ao contrário do az acr build comando que executamos anteriormente para construir nossa imagem, o az acr task create comando cria e registra uma tarefa de longa duração.

O comando seguinte mostra como criar uma tarefa chamada buildwebapp. A tarefa monitora o repositório GitHub para o aplicativo Web de exemplo usado por este módulo. Sempre que uma alteração for consolidada, a tarefa compila a imagem do Docker webimage no código fonte no GitHub e armazena-a no seu registo do Container Registry. Antes de executar este comando, tem de criar um token de acesso pessoal do GitHub com permissões para criar um webhook no seu repositório. Para repositórios privados, o token também necessitará de permissões totais 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>