Connettersi a un'istanza dell'app per la risoluzione dei problemi
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a:✅ Basic/Standard ✅ Enterprise
Questo articolo descrive come accedere all'ambiente shell all'interno delle istanze dell'applicazione per la risoluzione dei problemi avanzata.
Anche se Azure Spring Apps offre diversi approcci per la risoluzione dei problemi gestiti, è consigliabile eseguire operazioni avanzate di risoluzione dei problemi usando l'ambiente della shell. Ad esempio, è possibile eseguire le attività di risoluzione dei problemi seguenti:
- Usare direttamente gli strumenti di Java Development Kit (JDK).
- Diagnosticare i servizi back-end di un'app per la latenza di connessione di rete e di chiamata API per le istanze di rete virtuale e non di rete virtuale.
- Diagnosticare i problemi di capacità di archiviazione, prestazioni e CPU/memoria.
Prerequisiti
Interfaccia della riga di comando di Azure con l'estensione Azure Spring Apps. Usare il comando seguente per rimuovere le versioni precedenti e installare l'estensione più recente. Se l'estensione
spring-cloud
è stata installata in precedenza, disinstallarla per evitare la mancata corrispondenza della configurazione e della versione.az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Applicazione distribuita in Azure Spring Apps.
Se è stato distribuito un contenitore personalizzato, un programma shell. Il valore predefinito è
/bin/sh
.
Assegnare un ruolo di Azure
Prima di connettersi a un'istanza dell'app, è necessario concedere il ruolo Ruolo Azure Spring Apps Connect. Per connettersi a un'istanza dell'app è necessaria l'autorizzazione Microsoft.AppPlatform/Spring/apps/deployments/connect/action
per l'azione dati .
È possibile assegnare un ruolo di Azure usando il portale di Azure o l'interfaccia della riga di comando di Azure.
Usare la procedura seguente per assegnare un ruolo di Azure usando il portale di Azure.
Apri il portale di Azure.
Aprire l'istanza del servizio Azure Spring Apps esistente.
Selezionare Controllo di accesso (IAM) dal menu a sinistra.
Selezionare Aggiungi nella barra dei comandi e quindi selezionare Aggiungi assegnazione di ruolo.
Cercare Ruolo Azure Spring Apps Connect nell'elenco e quindi selezionare Avanti.
Selezionare Seleziona membri e quindi cercare il nome utente.
Seleziona Rivedi + assegna.
Connettersi a un'istanza dell'app
È possibile connettersi a un'istanza dell'app usando il portale di Azure o l'interfaccia della riga di comando di Azure.
Usare la procedura seguente per connettersi a un'istanza dell'app usando il portale di Azure.
Apri il portale di Azure.
Aprire l'istanza del servizio Azure Spring Apps esistente.
Selezionare App dal menu a sinistra e quindi selezionare una delle app.
Selezionare Console dal menu a sinistra.
Selezionare un'istanza dell'applicazione.
Selezionare o immettere una shell da eseguire nel contenitore.
Selezionare Connetti.
Risolvere i problemi relativi all'istanza dell'app
Dopo la connessione a un'istanza dell'app, è possibile controllare lo stato della memoria dell'heap.
Usare il comando seguente per trovare l'ID processo Java, in genere 1
:
jps
L'output dovrebbe essere simile all'esempio seguente:
Usare quindi il comando seguente per eseguire lo strumento JDK per controllare il risultato:
jstat -gc 1
L'output dovrebbe essere simile all'esempio seguente:
Disconnettersi dall'istanza dell'app
Al termine della risoluzione dei problemi, usare il exit
comando per disconnettersi dall'istanza dell'app o premere Ctrl+d
.
Strumenti per la risoluzione dei problemi
L'elenco seguente descrive alcuni degli strumenti preinstallati che è possibile usare per la risoluzione dei problemi:
lsof
- Elenca i file aperti.top
- Visualizza le informazioni di riepilogo del sistema e l'utilizzo corrente.ps
- Ottiene uno snapshot del processo in esecuzione.netstat
- Stampa le connessioni di rete e le statistiche dell'interfaccia.nslookup
- Esegue query su server dei nomi Internet in modo interattivo.ping
- Verifica se è possibile raggiungere un host di rete.nc
- Legge e scrive nelle connessioni di rete tramite TCP o UDP.wget
- Consente di scaricare i file e interagire con le API REST.df
- Visualizza la quantità di spazio disponibile su disco.
È anche possibile usare strumenti in bundle JDK, ad jps
esempio , jcmd
e jstat
.
L'elenco seguente mostra gli strumenti disponibili, che dipendono dal piano di servizio e dal tipo di distribuzione dell'app:
- Distribuzione di codice sorgente, JAR e artefatti:
- Basic, Standard e Standard Consumption & Dedicated Plan:
- Strumenti comuni - Sì
- Strumenti JDK: sì, solo per i carichi di lavoro Java.
- Piano aziendale:
- Strumenti comuni: dipende dallo stack del sistema operativo scelto nel generatore. Sì, per lo stack di sistemi operativi completo. No, per stack del sistema operativo di base.
- Strumenti JDK: sì, solo per i carichi di lavoro Java.
- Basic, Standard e Standard Consumption & Dedicated Plan:
- Distribuzione di immagini personalizzate: dipende dal set di strumenti installato nell'immagine.
Nota
Gli strumenti JDK non sono inclusi nel percorso per il tipo di distribuzione del codice sorgente. Eseguire export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin"
prima di eseguire qualsiasi comando JDK.
Limiti
L'uso dell'ambiente shell all'interno delle istanze dell'applicazione presenta le limitazioni seguenti:
Poiché l'app è in esecuzione come utente non radice, non è possibile eseguire alcune azioni che richiedono l'autorizzazione radice. Ad esempio, non è possibile installare nuovi strumenti usando gestione pacchetti
apt / yum
di sistema .Poiché alcune funzionalità di Linux non sono consentite, gli strumenti che richiedono privilegi speciali, ad esempio
tcpdump
, non funzionano.