Compartir a través de


Conectarse a la consola de depuración de un contenedor en Azure Container Apps

La plataforma Azure Container Apps ofrece una consola de depuración para ayudarle a solucionar problemas de la aplicación en las siguientes circunstancias:

  • No se puede conectar al contenedor de destino cuando se usa un contenedor que solo incluye la aplicación y sus dependencias en tiempo de ejecución, o una imagen "sin distribución".
  • Cuando se producen problemas de red, las imágenes no tienen utilidades de depuración para investigarlas.

Puede conectarse a la consola de depuración mediante la CLI de Azure.

Nota:

La consola de depuración crea un contenedor independiente que comparte los recursos subyacentes con el contenedor donde se ejecuta la aplicación. Si ya existe un contenedor de depuración, la consola de depuración reutiliza el existente en lugar de crear una nuevo. Hay como máximo un contenedor de depuración en ejecución por réplica de aplicación de contenedor. Si no necesita mantener un contenedor de depuración en ejecución, escriba salir o use Ctrl/Cmd + D en la sesión de la consola de depuración.

CLI de Azure

Para conectarse a una consola de contenedor, use el comando az containerapp debug. Para salir de la consola, escriba salir o use Ctrl/Cmd + D.

Por ejemplo, use el siguiente comando para conectarse a la consola de depuración del contenedor de una aplicación contenedora con un contenedor único. Antes de ejecutar este comando, reemplace <PLACEHOLDERS> por los valores de la aplicación contenedora.

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

Para conectarse a la consola de depuración del contenedor de una aplicación contenedora con varias revisiones, réplicas y contenedores, incluya los siguientes parámetros en el comando az containerapp debug.

Argumento Descripción
--revision Nombre de revisión del contenedor que se va a depurar.
--replica Nombre de la réplica del contenedor que se va a depurar.
--container Nombre del contenedor que se va a depurar.

Puede obtener los nombres de revisión con el comando az containerapp revision list. Antes de ejecutar este comando, reemplace <PLACEHOLDERS> por los valores de la aplicación contenedora.

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

Use el comando az containerapp replica list para obtener los nombres de revisión, réplica y contenedor. Antes de ejecutar este comando, reemplace <PLACEHOLDERS> por los valores de la aplicación contenedora.

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

Conéctese a la consola de depuración del contenedor mediante el comando az containerapp debug. Antes de ejecutar este comando, reemplace <PLACEHOLDERS> por los valores de la aplicación contenedora.

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

Herramientas integradas en la consola de depuración

Las siguientes herramientas de diagnóstico están preinstaladas en la consola de depuración para ayudarle a solucionar problemas:

Si desea instalar otras herramientas, ejecute el comando tdnf install -y <TOOL_NAME>. Antes de ejecutar este comando, reemplace <PLACEHOLDERS> por los valores de la aplicación contenedora.

Por ejemplo, instale JDK en la consola de depuración mediante el siguiente comando:

tdnf install -y msopenjdk-17

Escenario: acceso al sistema de archivos del contenedor a través de la consola de depuración

De manera predeterminada, la consola de depuración se ejecuta como usuario raíz.

Puede acceder a /proc/1 para acceder al sistema de archivos del contenedor si el contenedor se ejecuta como usuario raíz. Si el contenedor no se ejecuta como usuario raíz, ejecute el comando siguiente para cambiar de usuario antes de acceder al directorio de /proc/1 o recibirá un error de permiso denegado.

switch-to-app-user