Freigeben über


Herstellen einer Verbindung mit einer Containerdebugkonsole in Azure Container Apps

Die Azure-Container-Apps-Plattform bietet eine Debugkonsole, die Ihnen bei der Problembehandlung Ihrer Anwendung unter den folgenden Umständen hilft:

  • Sie können keine Verbindung zum Zielcontainer herstellen, wenn Sie einen Container verwenden, der nur die Anwendung und ihre Laufzeitabhängigkeiten enthält, oder ein „distroloses“ Image.
  • Wenn Netzwerkprobleme auftreten, verfügen Ihre Bilder nicht über Debugging-Dienstprogramme, um sie zu untersuchen.

Sie können eine Verbindung mit der Debugkonsole über die Azure CLI herstellen.

Hinweis

Die Debugkonsole erstellt einen separaten Container, der die zugrunde liegenden Ressourcen mit dem Container teilt, in dem Ihre App ausgeführt wird. Wenn bereits ein Debugcontainer vorhanden ist, verwendet die Debugkonsole die vorhandene, anstatt eine neue zu erstellen. Es gibt höchstens einen laufenden Debug-Container pro Container-App-Replikat. Wenn Sie keinen Debugcontainer ausführen müssen, geben Sie Beenden ein, oder verwenden Sie STRG/CMD+D- in der Debugkonsolensitzung.

Azure-Befehlszeilenschnittstelle

Um eine Verbindung mit einem Container herzustellen, verwenden Sie den Befehl az containerapp debug. Um die Konsole zu beenden, geben Sie Beenden ein, oder verwenden Sie STRG/CMD +D.

Mit dem folgenden Befehl können Sie beispielsweise eine Verbindung mit einer Containerdebugkonsole in einer Container-App mit einem einzelnen Container herstellen. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS> durch die Werte Ihrer Container-App.

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

Sie können eine Verbindung mit einer Containerdebugkonsole in einer Container-App mit mehreren Revisionen, Replikaten und Containern herstellen, indem Sie die folgenden Parameter in den Befehl az containerapp debug einschließen.

Argument Beschreibung
--revision Der Überarbeitungsname des zu debuggenden Containers.
--replica Der Replikatname des zu debuggenden Containers.
--container Der Containername des zu debuggenden Containers.

Sie können die Revisionsnamen mit dem Befehl az containerapp revision list abrufen. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS> durch die Werte Ihrer Container-App.

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

Verwenden Sie den Befehl az containerapp replica list, um die Replikat- und Containernamen abzurufen. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS> durch die Werte Ihrer Container-App.

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

Stellen Sie mit dem Befehl az containerapp debug eine Verbindung mit der Containerdebugkonsole her. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS> durch die Werte Ihrer Container-App.

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

Integrierte Tools in der Debugkonsole

Die folgenden Diagnosetools sind in der Debugkonsole vorinstalliert, um Probleme zu beheben:

Wenn Sie andere Tools installieren möchten, führen Sie den Befehl tdnf install -y <TOOL_NAME> aus. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS> durch die Werte Ihrer Container-App.

Installieren Sie z. B. JDK in der Debugkonsole mit dem folgenden Befehl:

tdnf install -y msopenjdk-17

Szenario : Zugreifen auf das Dateisystem des Containers über die Debugkonsole

Standardmäßig wird die Debugkonsole als Stammbenutzer ausgeführt.

Sie können auf /proc/1 zugreifen, um auf das Dateisystem des Containers zuzugreifen, wenn Ihr Container als Stammbenutzer ausgeführt wird. Wenn Ihr Container nicht als Stammbenutzer ausgeführt wird, führen Sie den folgenden Befehl aus, um den Benutzer zu wechseln, bevor Sie auf das /proc/1-Verzeichnis zugreifen, oder Sie erhalten einen Fehler bei der Berechtigung verweigert.

switch-user