Compartilhar via


Tutorial: Atualizar um aplicativo de contêiner implantado do código-fonte

Este artigo demonstra como atualizar o aplicativo de contêiner que você criou no artigo anterior, Criar e implantar seu código-fonte nos Aplicativos de Contêiner do Azure.

Caso ainda não concluiu as etapas do artigo anterior, pare aqui e retorne a este artigo assim que todas as etapas forem concluídas.

Neste tutorial, você:

  • Faça uma alteração de código em seu aplicativo.
  • Envie suas alterações por push para o registro de contêiner com uma nova marca.
  • Exiba o aplicativo atualizado em um navegador.
  • Consulte o fluxo de log para exibir mensagens registradas em log.

Pré-requisitos

Para concluir este projeto, você precisa das ferramentas, dos recursos e do aplicativo de contêiner criados no tutorial anterior, Criar e implantar do código-fonte nos Aplicativos de Contêiner do Azure.

Instalação

  1. Se necessário, entre no Azure por meio da CLI.

    az login
    
  2. Criar variáveis de ambiente. Se as variáveis de ambiente do último tutorial ainda existirem em seu terminal, você poderá ignorar esta etapa.

    Caso precise recriar as variáveis de ambiente, primeiro precisará consultar o nome do registro de contêiner criado no último artigo.

    Execute o comando a seguir para consultar o registro de contêiner que você criou no último tutorial.

    az acr list --query "[].{Name:name}" --output table
    

    Depois de ter o nome do registro de contêiner, substitua <REGISTRY_NAME> pelo nome do registro e execute o comando a seguir.

    RESOURCE_GROUP="my-demo-group"
    CONTAINER_APP_NAME="my-demo-app"
    REGISTRY_NAME="<REGISTRY_NAME>"
    
  3. Atualize e execute seu código-fonte.

    Substitua o conteúdo de Startup.cs pelo seguinte código.

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
        }
    
        public void Configure(IApplicationBuilder app, ILogger<Startup> logger)
        {
            app.UseRouting();
    
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    logger.LogInformation("Hello Logger!");
                    await context.Response.WriteAsync("Hello Logger!");
                });
            });
        }
    }
    

    Esta versão do código registra um agente para gravar informações no console e no fluxo de log dos Aplicativos de Contêiner.

    Crie seu projeto na configuração de versão.

    dotnet build -c Release
    

    Em seguida, execute seu aplicativo para verificar se o código foi implementado corretamente.

    dotnet run --configuration Release
    

Compilar e enviar a imagem por push para um registro

Agora que o código é atualizado, envie a versão mais recente como uma nova imagem para o registro de contêiner.

Para garantir que a marca usada para o registro seja exclusiva, use o comando a seguir para criar um nome de marca.

IMAGE_TAG=$(date +%s)

Agora você poderá criar e enviar por push sua nova imagem de contêiner para o Registro usando o comando a seguir.

az acr build \
    -t $REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG \
    -r $REGISTRY_NAME .

Criar uma nova revisão

É possível criar uma nova revisão do aplicativo de contêiner com base na nova imagem de contêiner enviada por push para o registro.

az containerapp revision copy \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --image "$REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG" \
  --output none

O comando revision copy cria uma nova revisão do aplicativo de contêiner com a imagem de contêiner especificada do registro.

Verificar a implantação

Agora que seu aplicativo está implantado, você pode consultar o URL com esse comando.

az containerapp show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --query properties.configuration.ingress.fqdn -o tsv

Em um navegador da Web, acesse o URL do aplicativo. Depois que o aplicativo de contêiner é iniciado, ele gera Hello Logger!.

Fluxo de log de consulta

Você acabou de visualizar a saída enviada para o navegador, então agora você pode usar o comando a seguir para visualizar as mensagens que estão sendo registradas no fluxo de log.

az containerapp logs show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --follow

A consulta retorna uma resposta semelhante ao exemplo a seguir:

{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Hosting environment: Production"}
{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Content root path: /app"}
{"TimeStamp", "xxxx", "Log": "info: Startup[0]"}
{"TimeStamp", "xxxx", "Log": "Hello Logger!""}

Observe como você pode visualizar a mensagem de Hello Logger! no fluxo.

Para parar de seguir o fluxo, insira Cmd/Ctrl + C para encerrar as mensagens.

Limpar os recursos

Caso não use os recursos do Azure criados neste tutorial, poderá removê-los com o seguinte comando.

az group delete --name my-demo-group

Dica

Está enfrentando problemas? Deixe-nos saber sobre GitHub abrindo um problema no repositório dos Aplicativos de Contêiner do Azure.

Próximas etapas

Continue aprendendo a se conectar aos serviços nos Aplicativos de Contêiner do Azure.