Se connecter à une console de débogage de conteneur dans Azure Container Apps
La plateforme Azure Container Apps propose une console de débogage pour vous aider à résoudre les problèmes liés à votre application dans les circonstances suivantes :
- Vous ne pouvez pas vous connecter au conteneur cible quand vous utilisez un conteneur qui inclut uniquement l’application et ses dépendances de runtime, ou une image « distroless ».
- Quand vous rencontrez des problèmes de mise en réseau, vos images n’ont pas d’utilitaires de débogage pour permettre des investigations.
Vous pouvez vous connecter à la console de débogage à l’aide d’Azure CLI.
Remarque
La console de débogage crée un conteneur distinct, qui partage les ressources sous-jacentes avec le conteneur dans lequel votre application s’exécute. Si un conteneur de débogage existe déjà, la console de débogage le réutilise au lieu d’en créer un autre. Il existe au maximum un seul conteneur de débogage en cours d’exécution par réplica d’application de conteneur. Si vous n’avez pas besoin de maintenir l’exécution d’un conteneur de débogage, entrez exit, ou utilisez Ctrl/Cmd + D dans la session de console de débogage.
Azure CLI
Pour vous connecter à la console de débogage d’un conteneur, utilisez la commande az containerapp debug
. Pour quitter la console, entrez exit, ou utilisez Ctrl/Cmd + D.
Par exemple, connectez-vous à une console de débogage de conteneur dans une application de conteneur avec un seul conteneur à l’aide de la commande suivante. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS>
par les valeurs de votre application de conteneur.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP>
Pour vous connecter à une console de débogage de conteneur dans une application de conteneur avec plusieurs révisions, réplicas et conteneurs, incluez les paramètres suivants dans la commande az containerapp debug
.
Argument | Description |
---|---|
--revision |
Nom de révision du conteneur à déboguer. |
--replica |
Nom de réplica du conteneur à déboguer. |
--container |
Nom de conteneur du conteneur à déboguer. |
Vous pouvez obtenir les noms de révision avec la commande az containerapp revision list
. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS>
par les valeurs de votre application de conteneur.
az containerapp revision list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "[].name"
Utilisez la commande az containerapp replica list
pour obtenir les noms de réplica et de conteneur. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS>
par les valeurs de votre application de conteneur.
az containerapp replica list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--query "[].{Containers:properties.containers[].name, Name:name}"
Connectez-vous à la console de débogage du conteneur avec la commande az containerapp debug
. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS>
par les valeurs de votre application de conteneur.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--replica <REPLICA_NAME> \
--container <CONTAINER_NAME>
Outils intégrés à la console de débogage
Les outils de diagnostic suivants sont préinstallés sur la console de débogage pour vous aider à résoudre les problèmes :
- ip-utils
- net-tools
- procps
- lsof
- util-linux
- nc
- wget
- openssl
- traceroute
- ca-certificates
- bind-utils
- tcpping
Si vous souhaitez installer d’autres outils, exécutez la commande tdnf install -y <TOOL_NAME>
. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS>
par les valeurs de votre application de conteneur.
Par exemple, installez le JDK dans la console de débogage à l’aide de la commande suivante :
tdnf install -y msopenjdk-17
Scénario – Accès au système de fichiers du conteneur via la console de débogage
Par défaut, la console de débogage s’exécute en tant qu’utilisateur racine.
Vous pouvez accéder à /proc/1
pour accéder au système de fichiers du conteneur, si votre conteneur s’exécute en tant qu’utilisateur racine. Si votre conteneur ne s’exécute pas en tant qu’utilisateur racine, exécutez la commande ci-dessous pour changer d’utilisateur avant d’accéder au répertoire /proc/1
, sinon vous obtiendrez une erreur liée à un refus d’autorisation.
switch-user