Herstellen einer Verbindung mit einer App-Instanz zur Problembehandlung

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

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 mithilfe der Azure-Portal oder azure CLI zuweisen.

Führen Sie die folgenden Schritte aus, um eine Azure-Rolle mithilfe des 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 "Hinzufügen" in der Befehlsleiste und dann "Rollenzuweisung hinzufügen" aus.

    Screenshot of the Access Control(IAM) page showing the Add role assignment command.

  5. Suchen Sie in der Liste nach Azure Spring Apps Verbinden Rolle, und wählen Sie dann "Weiter" aus.

    Screenshot of the Add role assignment page showing the Azure Spring Apps Connect Role.

  6. Wählen Sie "Mitglieder auswählen" aus, und suchen Sie dann 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 herstellen, indem Sie die Azure-Portal oder azure CLI verwenden.

Führen Sie die folgenden Schritte aus, um mithilfe des 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 im Menü "Apps " aus, und wählen Sie dann eine Ihrer Apps aus.

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

  5. Wählen Sie eine Anwendungsinstanz aus.

    Screenshot of the Azure portal Console page showing an app instance.

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

    Screenshot of the Azure portal Console page showing a Custom Shell entry.

  7. Wählen Sie Verbinden aus.

    Screenshot of the Azure portal Console page showing the Connect command.

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 showing the output of the jps command.

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 showing the output of the jstat command.

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.

In der folgenden Liste sind die verfügbaren Tools aufgeführt, die von Ihrem Serviceplan und dem Typ der App-Bereitstellung abhängen:

  • Bereitstellung von Quellcode, JAR und Artefakten:
    • Standard-, Standard- und Standardverbrauch & dedizierter Plan:
      • Allgemeine Tools - Ja
      • JDK-Tools – Ja, nur für Java-Workloads.
    • Enterprise-Plan:
      • Allgemeine Tools – Hängt davon ab, welchen Betriebssystemstapel Sie im Generator ausgewählt haben. Ja, für vollständigen Betriebssystemstapel. Nein, für Basisbetriebssystemstapel.
      • JDK-Tools – Ja, nur für Java-Workloads.
  • Benutzerdefinierte Imagebereitstellung: Hängt von dem installierten Toolsatz in Ihrem Image ab.

Hinweis

JDK-Tools sind nicht im Pfad für den Quellcodebereitstellungstyp enthalten. Führen Sie vor export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin" dem Ausführen von JDK-Befehlen aus.

Begrenzungen

Die Verwendung der Shellumgebung innerhalb Ihrer Anwendungsinstanzen hat die folgenden 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