Compartilhar via


Conectar-se a um console de depuração de contêiner nos Aplicativos de Contêiner do Azure

A plataforma dos Aplicativos de Contêiner do Azure oferece um console de depuração para ajudar você a solucionar problemas do aplicativo nas seguintes circunstâncias:

  • Não é possível estabelecer conexão com o contêiner de destino quando ele só inclui o aplicativo e as respectivas dependências de runtime ou uma imagem “sem distro”.
  • Em caso de problemas de rede, as imagens não têm utilitários de depuração para ajudar na investigação.

É possível conectar-se ao console de depuração usando a CLI do Azure.

Observação

O console de depuração cria um contêiner separado, que compartilha os recursos subjacentes com o contêiner em que o aplicativo está em execução. Se já houver um contêiner de depuração, o console de depuração o reutilizará em vez de criar um novo. Há apenas um contêiner de depuração em execução por réplica de aplicativo de contêiner. Se não for preciso manter um contêiner de depuração em execução, insira sair ou use Ctrl/Cmd + D na sessão do console de depuração.

CLI do Azure

Para se conectar a um console de depuração de contêiner, use o comando az containerapp debug. Para sair do console, insira sair ou use Ctrl/Cmd + D.

Por exemplo, use o comando a seguir para se conectar a um console de depuração de contêiner em um aplicativo de contêiner que contém um único contêiner. Antes de executar o comando, substitua <PLACEHOLDERS> pelos valores do aplicativo de contêiner.

az containerapp debug \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP>

Para se conectar a um console de depuração de contêiner em um aplicativo de contêiner com diversas revisões, réplicas e contêineres, inclua os parâmetros a seguir no comando az containerapp debug.

Argument Descrição
--revision O nome da revisão do contêiner que será depurado.
--replica O nome da réplica do contêiner que será depurado.
--container O nome do contêiner que será depurado.

É possível obter os nomes de revisão com o comando az containerapp revision list. Antes de executar o comando, substitua <PLACEHOLDERS> pelos valores do aplicativo de contêiner.

az containerapp revision list \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --query "[].name"

Use o comando az containerapp replica list para obter os nomes de revisão e de contêiner. Antes de executar o comando, substitua <PLACEHOLDERS> pelos valores do aplicativo de contêiner.

az containerapp replica list \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --revision <REVISION_NAME> \
  --query "[].{Containers:properties.containers[].name, Name:name}"

Conecte-se ao console de depuração de contêiner com o comando az containerapp debug. Antes de executar o comando, substitua <PLACEHOLDERS> pelos valores do aplicativo de contêiner.

az containerapp debug \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --revision <REVISION_NAME> \
  --replica <REPLICA_NAME> \
  --container <CONTAINER_NAME> 

Ferramentas internas do console de depuração

As seguintes ferramentas de diagnóstico estão pré-instaladas no console de depuração para ajudar você a solucionar problemas:

Para instalar outras ferramentas, execute o comando tdnf install -y <TOOL_NAME>. Antes de executar o comando, substitua <PLACEHOLDERS> pelos valores do aplicativo de contêiner.

Por exemplo, instale o JDK no console de depuração usando o seguinte comando:

tdnf install -y msopenjdk-17

Cenário – Acessar o sistema de arquivos do contêiner por meio do console de depuração

Por padrão, o console de depuração é executado como usuário raiz.

Se o contêiner for executado como usuário raiz, você poderá acessar /proc/1 para ter acesso ao sistema de arquivos do contêiner. Se o contêiner não for executado como usuário raiz, execute o comando abaixo para alternar o usuário antes de acessar o diretório /proc/1 ou você receberá um erro de permissão negada.

switch-user