Verbinding maken met een applicatie-instantie voor probleemoplossing
Notitie
De Basic, Standarden Enterprise--plannen zijn op 17 maart 2025 buiten gebruik gesteld. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het Standaardverbruik en het toegewezen-plan zijn op 30 september 2024 met een uitfasering begonnen, met een volledige beëindiging eind maart 2025. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op:✅ Basic/Standard ✅ Enterprise
In dit artikel wordt beschreven hoe u toegang hebt tot de shell-omgeving in uw toepassingsexemplaren om geavanceerde probleemoplossing uit te voeren.
Hoewel Azure Spring Apps verschillende beheerde methoden voor probleemoplossing biedt, kunt u geavanceerde probleemoplossing uitvoeren met behulp van de shell-omgeving. U kunt bijvoorbeeld de volgende probleemoplossingstaken uitvoeren:
- Gebruik rechtstreeks JDK-hulpprogramma's (Java Development Kit).
- Diagnose uitvoeren op basis van de back-endservices van een app voor netwerkverbinding en API-aanroeplatentie voor instanties van zowel virtueel netwerk als niet-virtuele netwerken.
- Problemen met opslagcapaciteit, prestaties en CPU/geheugen vaststellen.
Vereisten
Azure CLI met de Azure Spring Apps-extensie. Gebruik de volgende opdracht om eerdere versies te verwijderen en de nieuwste extensie te installeren. Als u eerder de
spring-cloud
extensie hebt geïnstalleerd, verwijder deze om te voorkomen dat de configuratie en versie niet overeenkomen.az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Een geïmplementeerde toepassing in Azure Spring Apps.
Als u een aangepaste container hebt geïmplementeerd, is er een shell-programma. De standaardwaarde is
/bin/sh
.
Een Azure-rol toewijzen
Voordat u verbinding maakt met een app-exemplaar, moet u de rol Azure Spring Apps Connect Role krijgen. Voor het maken van verbinding met een app-exemplaar is de machtiging Microsoft.AppPlatform/Spring/apps/deployments/connect/action
voor de gegevensactie vereist.
U kunt een Azure-rol toewijzen met behulp van Azure Portal of Azure CLI.
Gebruik de volgende stappen om een Azure-rol toe te wijzen met behulp van Azure Portal.
Open de Azure Portal.
Open uw bestaande Azure Spring Apps-service-exemplaar.
Selecteer Toegangsbeheer (IAM) in het linkermenu.
Selecteer Toevoegen op de opdrachtbalk en selecteer vervolgens Roltoewijzing toevoegen.
Zoek naar Azure Spring Apps Connect-rol in de lijst en selecteer vervolgens Volgende.
Selecteer leden selecteren en zoek uw gebruikersnaam.
Selecteer Controleren + toewijzen.
Verbinding maken met een app-instance
U kunt verbinding maken met een app-exemplaar via Azure Portal of Azure CLI.
Gebruik de volgende stappen om verbinding te maken met een app-exemplaar met behulp van Azure Portal.
Open de Azure Portal.
Open uw bestaande Azure Spring Apps-service-exemplaar.
Selecteer Apps in het menu links en selecteer vervolgens een van uw apps.
Selecteer Console in het linkermenu.
Selecteer een applicatie-instantie.
Selecteer of voer een shell in die in de container moet worden uitgevoerd.
Selecteer Verbinding maken.
Problemen met uw app-exemplaar oplossen
Nadat u verbinding hebt gemaakt met een app-exemplaar, kunt u de status van het heap-geheugen controleren.
Gebruik de volgende opdracht om de Java-proces-id te vinden. Dit is meestal 1
:
jps
De uitvoer moet eruitzien als in het volgende voorbeeld:
Gebruik vervolgens de volgende opdracht om het JDK-hulpprogramma uit te voeren om het resultaat te controleren:
jstat -gc 1
De uitvoer moet eruitzien als in het volgende voorbeeld:
De verbinding met uw app-exemplaar verbreken
Wanneer u klaar bent met het oplossen van problemen, gebruikt u de opdracht om de exit
verbinding met het app-exemplaar te verbreken of drukt u op Ctrl+d.
Probleemoplossingshulpmiddelen
In de volgende lijst worden enkele vooraf geïnstalleerde hulpprogramma's beschreven die u kunt gebruiken voor probleemoplossing:
-
lsof
- Lijsten met geopende bestanden. -
top
- Geeft systeemoverzichtsinformatie en huidig gebruik weer. -
ps
- Hiermee haalt u een momentopname van het lopende proces op. -
netstat
- Hiermee worden netwerkverbindingen en interfacestatistieken afgedrukt. -
nslookup
- Voert interactief query's uit op internetnaamservers. -
ping
- Test of een netwerkhost kan worden bereikt. -
nc
- Leest van en schrijft naar netwerkverbindingen met TCP of UDP. -
wget
- Hiermee kunt u bestanden downloaden en werken met REST API's. -
df
- Geeft de hoeveelheid beschikbare schijfruimte weer.
U kunt ook JDK-gebundelde hulpprogramma's zoals jps
, jcmd
en jstat
.
De volgende lijst bevat de beschikbare hulpprogramma's, die afhankelijk zijn van uw serviceplan en het type app-implementatie:
- Deployen van broncode, JAR-bestanden en artefacten:
- Basis, Standaard en Standaardverbruik & Dedicated Plan:
- Algemene hulpprogramma's - Ja
- JDK-hulpprogramma's: ja, alleen voor Java-workloads.
- Enterprise-abonnement:
- Algemene hulpprogramma's: is afhankelijk van de besturingssysteemstack die u hebt gekozen in uw opbouwfunctie. Ja, voor volledige besturingssysteemstack. Nee, voor de basale OS-stack.
- JDK-hulpprogramma's: ja, alleen voor Java-workloads.
- Basis, Standaard en Standaardverbruik & Dedicated Plan:
- Aangepaste afbeelding implementeren: hangt af van de geïnstalleerde set hulpprogramma's in uw afbeelding.
Notitie
JDK-hulpprogramma's zijn niet opgenomen in het pad voor het implementatietype broncode . Voer export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin"
deze uit voordat u JDK-opdrachten uitvoert.
Beperkingen
Het gebruik van de shell-omgeving in uw toepassingsexemplaren heeft de volgende beperkingen:
Omdat de app wordt uitgevoerd als een niet-hoofdgebruiker, kunt u bepaalde acties waarvoor hoofdmachtiging is vereist, niet uitvoeren. U kunt bijvoorbeeld geen nieuwe hulpprogramma's installeren met behulp van System Package Manager
apt / yum
.Omdat sommige Linux-mogelijkheden niet zijn toegestaan, werken hulpprogramma's waarvoor speciale bevoegdheden zijn vereist, zoals
tcpdump
, niet.