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 vom Plan „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:
Öffnen Sie das Azure-Portal.
Öffnen Sie Ihre vorhandene Azure Spring Apps-Dienstinstanz.
Wählen Sie Zugangskontrolle (IAM) im linken Menü.
Wählen Sie auf der Befehlsleiste die Option Hinzufügen und anschließend Rollenzuweisung hinzufügen aus.
Suchen Sie in der Liste nach Azure Spring Apps-Verbindungsrolle, und wählen Sie Weiter aus.
Wählen Sie Mitglieder auswählen aus, und suchen Sie nach Ihrem Benutzernamen.
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:
Öffnen Sie das Azure-Portal.
Öffnen Sie Ihre vorhandene Azure Spring Apps-Dienstinstanz.
Wählen Sie links im Menü die Option Apps und anschließend eine Ihrer Apps aus.
Wählen Sie im linken Menü die Option Konsole aus.
Wählen Sie eine Anwendungsinstanz aus.
Wählen Sie eine Shell aus, die im Container ausgeführt werden soll, oder geben Sie eine Shell ein.
Wählen Sie 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:
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:
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)
- Basic-Plan, Standard-Plan und Plan „Standardverbrauch und dediziert“:
- 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
).