Condividi tramite


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:

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