Conectar-se a um console de depuração de contêiner em Aplicativos de Contêiner do Azure
A plataforma Azure Container Apps oferece um console de depuração para ajudá-lo a solucionar problemas do seu aplicativo nas seguintes circunstâncias:
- Você não pode se conectar ao contêiner de destino quando usa um contêiner que inclui apenas o aplicativo e suas dependências de tempo de execução ou uma imagem "distroless".
- Quando encontram problemas de rede, suas imagens não têm utilitários de depuração para investigá-los.
Você pode se conectar ao console de depuração usando a CLI do Azure.
Nota
O console de depuração cria um contêiner separado, que compartilha os recursos subjacentes com o contêiner onde seu aplicativo está sendo executado. Se já existir um contêiner de depuração, o console de depuração reutiliza o existente em vez de criar um novo. Há no máximo um contêiner de depuração em execução por réplica de aplicativo de contêiner. Se você não precisar manter um contêiner de depuração em execução, digite exit ou use Ctrl/Cmd + D na sessão do console de depuração.
CLI do Azure
Para conectar a um contêiner o console de depuração, use o az containerapp debug
comando. Para sair do console, digite exit ou use Ctrl/Cmd + D.
Por exemplo, conecte-se a um console de depuração de contêiner em um aplicativo de contêiner com um único contêiner usando o comando a seguir. Antes de executar esse comando, substitua os valores do <PLACEHOLDERS>
aplicativo 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 várias revisões, réplicas e contêineres, inclua os seguintes parâmetros no az containerapp debug
comando.
Argumento | Description |
---|---|
--revision |
O nome da revisão do contêiner a ser depurado. |
--replica |
O nome da réplica do contêiner a ser depurado. |
--container |
O nome do contêiner a ser depurado. |
Você pode obter os nomes de revisão com o az containerapp revision list
comando. Antes de executar esse comando, substitua os valores do <PLACEHOLDERS>
aplicativo contêiner.
az containerapp revision list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "[].name"
Use o az containerapp replica list
comando para obter os nomes da réplica e do contêiner. Antes de executar esse comando, substitua os valores do <PLACEHOLDERS>
aplicativo 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 do contêiner com o az containerapp debug
comando. Antes de executar esse comando, substitua os valores do <PLACEHOLDERS>
aplicativo contêiner.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--replica <REPLICA_NAME> \
--container <CONTAINER_NAME>
Ferramentas integradas no Debug Console
As seguintes ferramentas de diagnóstico são pré-instaladas no console de depuração para ajudá-lo a solucionar problemas:
- ip-utils
- ferramentas de rede
- Propps
- lsof
- util-linux
- NC
- wget
- openssl
- Traceroute
- Certificados CA
- bind-utils
- Tcpping
Se quiser instalar outras ferramentas, execute o tdnf install -y <TOOL_NAME>
comando. Antes de executar esse comando, substitua os valores do <PLACEHOLDERS>
aplicativo contêiner.
Por exemplo, instale o JDK no console de depuração usando o seguinte comando:
tdnf install -y msopenjdk-17
Cenário - Acessando o sistema de arquivos do contêiner via Debug Console
Por padrão, o console de depuração é executado como usuário root.
Você pode acessar /proc/1
o sistema de arquivos do contêiner se o contêiner for executado como usuário raiz. Se o contêiner não for executado como usuário root, execute o comando abaixo para alternar o usuário antes de acessar /proc/1
o diretório, ou você receberá um erro de permissão negada.
switch-user