Freigeben über


Herstellen einer Verbindung mit einer App-Instanz zur Problembehandlung

Hinweis

Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.

Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.

Dieser Artikel gilt für: ✔️ Basic/Standard ✔️ Enterprise

In diesem Artikel wird beschrieben, wie Sie auf die Shellumgebung in Ihren Anwendungsinstanzen zugreifen, um eine erweiterte Problembehandlung durchzuführen.

Azure Spring Apps bietet zwar verschiedene verwaltete Problembehandlungsansätze, aber möglicherweise möchten Sie eine erweiterte Problembehandlung mithilfe der Shellumgebung durchführen. Sie können beispielsweise die folgenden Problembehandlungsaufgaben ausführen:

  • Direktes Verwenden von JDK-Tools (Java Development Kit)
  • Ausführen von Diagnosen für die Back-End-Dienste einer App zum Ermitteln von Netzwerkverbindungen und der Wartezeit bei API-Aufrufen für Instanzen virtueller Netzwerke und nicht virtueller Netzwerke
  • Diagnostizieren von Problemen mit Speicherkapazität, Leistung und CPU/Arbeitsspeicher

Voraussetzungen

  • Azure CLI mit der Azure Spring Apps-Erweiterung. Verwenden Sie den folgenden Befehl, um frühere Versionen zu entfernen und die neueste Erweiterung zu installieren. Wenn Sie zuvor die spring-cloud-Erweiterung installiert hatten, deinstallieren Sie diese Erweiterung, um Konfigurations- und Versionskonflikte zu vermeiden.

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    
  • Bereitgestellte Anwendung in Azure Spring Apps

  • Shellprogramm, falls Sie einen benutzerdefinierten Container bereitgestellt haben. Der Standardwert ist /bin/sh.

Zuweisen einer Azure-Rolle

Bevor Sie eine Verbindung mit einer App-Instanz herstellen, muss Ihnen die Rolle Azure Spring Apps-Verbindungsrolle zugewiesen werden. Beim Herstellen einer Verbindung mit einer App-Instanz ist die Datenaktionsberechtigung Microsoft.AppPlatform/Spring/apps/deployments/connect/action erforderlich.

Sie können eine Azure-Rolle über das Azure-Portal oder die Azure-Befehlszeilenschnittstelle zuweisen.

Führen Sie die folgenden Schritte aus, um eine Azure-Rolle über das Azure-Portal zuzuweisen:

  1. Öffnen Sie das Azure-Portal.

  2. Öffnen Sie Ihre vorhandene Azure Spring Apps-Dienstinstanz.

  3. Wählen Sie Zugangskontrolle (IAM) im linken Menü.

  4. Wählen Sie auf der Befehlsleiste die Option Hinzufügen und anschließend Rollenzuweisung hinzufügen aus.

    Screenshot: Seite „Zugriffssteuerung (IAM)“ mit dem Befehl „Rollenzuweisung hinzufügen“

  5. Suchen Sie in der Liste nach Azure Spring Apps-Verbindungsrolle, und wählen Sie Weiter aus.

    Screenshot: Seite „Rollenzuweisung hinzufügen“ mit der Azure Spring Apps-Verbindungsrolle

  6. Wählen Sie Mitglieder auswählen aus, und suchen Sie nach Ihrem Benutzernamen.

  7. Wählen Sie Überprüfen und zuweisen aus.

Herstellen einer Verbindung mit einer App-Instanz

Sie können eine Verbindung mit einer App-Instanz über das Azure-Portal oder über die Azure CLI herstellen.

Führen Sie die folgenden Schritte aus, um über das Azure-Portal eine Verbindung mit einer App-Instanz herzustellen:

  1. Öffnen Sie das Azure-Portal.

  2. Öffnen Sie Ihre vorhandene Azure Spring Apps-Dienstinstanz.

  3. Wählen Sie links im Menü die Option Apps und anschließend eine Ihrer Apps aus.

  4. Wählen Sie im linken Menü die Option Konsole aus.

  5. Wählen Sie eine Anwendungsinstanz aus.

    Screenshot: Seite „Konsole“ im Azure-Portal mit einer App-Instanz

  6. Wählen Sie eine Shell aus, die im Container ausgeführt werden soll, oder geben Sie eine Shell ein.

    Screenshot: Seite „Konsole“ im Azure-Portal mit einem Eintrag für eine benutzerdefinierte Shell

  7. Wählen Sie Verbinden.

    Screenshot: Seite „Konsole“ im Azure-Portal mit dem Befehl „Verbinden“

Problembehandlung für Ihre App-Instanz

Nachdem Sie eine Verbindung mit einer App-Instanz hergestellt haben, können Sie den Status des Heaparbeitsspeichers überprüfen.

Verwenden Sie den folgenden Befehl, um die Java-Prozess-ID zu ermitteln, die in der Regel 1 lautet:

jps

Die Ausgabe sollte wie im folgenden Beispiel aussehen:

Screenshot: Ausgabe des jps-Befehls

Verwenden Sie dann den folgenden Befehl, um das JDK-Tool auszuführen und das Ergebnis zu überprüfen:

jstat -gc 1

Die Ausgabe sollte wie im folgenden Beispiel aussehen:

Screenshot: Ausgabe des jstat-Befehls

Trennen der Verbindung mit Ihrer App-Instanz

Wenn Sie die Problembehandlung abgeschlossen haben, verwenden Sie den Befehl exit, um die Verbindung mit der App-Instanz zu trennen, oder drücken Sie Ctrl+d.

Problembehandlungstools

In der folgenden Liste werden einige der vorinstallierten Tools beschrieben, die Sie für die Problembehandlung verwenden können:

  • lsof: Listet geöffnete Dateien auf.
  • top: Zeigt Systemzusammenfassungsinformationen und die aktuelle Auslastung an.
  • ps: Ruft eine Momentaufnahme des ausgeführten Prozesses ab.
  • netstat: Gibt Netzwerkverbindungen und Schnittstellenstatistiken aus.
  • nslookup: Fragt Internetnamenserver interaktiv ab.
  • ping: Testet, ob ein Netzwerkhost erreicht werden kann.
  • nc: Liest aus und schreibt in Netzwerkverbindungen mithilfe von TCP oder UDP.
  • wget: Ermöglicht das Herunterladen von Dateien und die Interaktion mit REST-APIs.
  • df: Zeigt den verfügbaren Speicherplatz auf dem Datenträger an.

Sie können auch im JDK zusammengefasste Tools verwenden, z. B. jps, jcmd und jstat.

Die folgende Liste enthält die verfügbaren Tools. Diese sind abhängig von Ihrem Serviceplan und von der Art der App-Bereitstellung:

  • Bereitstellung von Quellcode, JAR und Artefakten:
    • Basic-Plan, Standard-Plan und Plan „Standardverbrauch und dediziert“:
      • Gängige Tools: Ja
      • JDK-Tools: Ja (nur für Java-Workloads)
    • Enterprise-Plan
      • Gängige Tools: Abhängig vom gewählten Betriebssystemstapel in Ihrem Generator Ja (für den gesamten Betriebssystemstapel) Nein (für den grundlegenden Betriebssystemstapel)
      • JDK-Tools: Ja (nur für Java-Workloads)
  • Bereitstellung benutzerdefinierter Images: Abhängig vom installierten Toolset in Ihrem Image

Hinweis

JDK-Tools sind beim Bereitstellungstyp Quellcode nicht im Pfad enthalten. Führen Sie export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin" aus, bevor Sie JDK-Befehle ausführen.

Begrenzungen

Für die Verwendung der Shellumgebung in Ihren Anwendungsinstanzen gelten folgende Einschränkungen:

  • Da die App als Nicht-Root-Benutzer ausgeführt wird, können Sie einige Aktionen, für die die Root-Berechtigung erforderlich ist, nicht ausführen. Beispielsweise können Sie keine neuen Tools mithilfe des Systempaket-Managers apt / yum installieren.

  • Da einige Linux-Funktionen verboten sind, funktionieren Tools, die spezielle Berechtigungen erfordern, nicht (etwa tcpdump).

Nächste Schritte