Connettersi a una console di debug del contenitore in App Azure Container
La piattaforma App Azure Container offre una console di debug che consente di risolvere i problemi dell'applicazione nelle circostanze seguenti:
- Non è possibile connettersi al contenitore di destinazione quando si usa un contenitore che include solo l'applicazione e le relative dipendenze di runtime o un'immagine "senza distribuzione".
- Quando si verificano problemi di rete, le immagini non hanno utilità di debug per esaminarle.
È possibile connettersi alla console di debug usando l'interfaccia della riga di comando di Azure.
Nota
La console di debug crea un contenitore separato, che condivide le risorse sottostanti con il contenitore in cui è in esecuzione l'app. Se esiste già un contenitore di debug, la console di debug riutilizza quella esistente anziché crearne una nuova. È disponibile al massimo un contenitore di debug per ogni replica dell'app contenitore. Se non è necessario mantenere in esecuzione un contenitore di debug, immettere exit o usare CTRL/CMD + D nella sessione della console di debug.
Interfaccia della riga di comando di Azure
Per connettersi a un contenitore, usare il az containerapp debug
comando . Per uscire dalla console, immettere exit o usare CTRL/CMD + D.
Ad esempio, connettersi a una console di debug del contenitore in un'app contenitore con un singolo contenitore usando il comando seguente. Prima di eseguire questo comando, sostituire con i <PLACEHOLDERS>
valori dell'app contenitore.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP>
Per connettersi a una console di debug del contenitore in un'app contenitore con più revisioni, repliche e contenitori, includere i parametri seguenti nel az containerapp debug
comando .
Argomento | Descrizione |
---|---|
--revision |
Nome della revisione del contenitore di cui eseguire il debug. |
--replica |
Nome della replica del contenitore di cui eseguire il debug. |
--container |
Nome del contenitore di cui eseguire il debug. |
È possibile ottenere i nomi delle revisioni con il comando az containerapp revision list
. Prima di eseguire questo comando, sostituire con i <PLACEHOLDERS>
valori dell'app contenitore.
az containerapp revision list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "[].name"
Usare il comando az containerapp replica list
per ottenere i nomi di replica e contenitore. Prima di eseguire questo comando, sostituire con i <PLACEHOLDERS>
valori dell'app contenitore.
az containerapp replica list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--query "[].{Containers:properties.containers[].name, Name:name}"
Connettersi alla console di debug del contenitore con il az containerapp debug
comando . Prima di eseguire questo comando, sostituire con i <PLACEHOLDERS>
valori dell'app contenitore.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--replica <REPLICA_NAME> \
--container <CONTAINER_NAME>
Strumenti predefiniti nella console di debug
Gli strumenti di diagnostica seguenti sono preinstallati nella console di debug per risolvere i problemi:
- ip-utils
- net-tools
- procps
- lsof
- util-linux
- Nc
- wget
- openssl
- traceroute
- ca-certificates
- bind-utils
- tcpping
Se si desidera installare altri strumenti, eseguire il tdnf install -y <TOOL_NAME>
comando . Prima di eseguire questo comando, sostituire con i <PLACEHOLDERS>
valori dell'app contenitore.
Ad esempio, installare JDK nella console di debug usando il comando seguente:
tdnf install -y msopenjdk-17
Scenario - Accesso al file system del contenitore tramite la console di debug
Per impostazione predefinita, la console di debug viene eseguita come utente radice.
È possibile accedere /proc/1
al file system del contenitore se il contenitore viene eseguito come utente radice. Se il contenitore non viene eseguito come utente radice, eseguire il comando seguente per cambiare utente prima di accedere alla /proc/1
directory oppure si riceverà un errore di autorizzazione negata.
switch-user