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/actionper 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.

  1. Apri il portale di Azure.

  2. Aprire l'istanza del servizio Azure Spring Apps esistente.

  3. Selezionare Controllo di accesso (IAM) dal menu a sinistra.

  4. Selezionare Aggiungi nella barra dei comandi e quindi selezionare Aggiungi assegnazione di ruolo.

    Screenshot della pagina Controllo di accesso(IAM) che mostra il comando Aggiungi assegnazione di ruolo.

  5. Cercare Ruolo Azure Spring Apps Connect nell'elenco e quindi selezionare Avanti.

    Screenshot della pagina Aggiungi assegnazione di ruolo che mostra il ruolo Azure Spring Apps Connect.

  6. Selezionare Seleziona membri e quindi cercare il nome utente.

  7. 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.

  1. Apri il portale di Azure.

  2. Aprire l'istanza del servizio Azure Spring Apps esistente.

  3. Selezionare App dal menu a sinistra e quindi selezionare una delle app.

  4. Selezionare Console dal menu a sinistra.

  5. Selezionare un'istanza dell'applicazione.

    Screenshot della pagina portale di Azure Console che mostra un'istanza dell'app.

  6. Selezionare o immettere una shell da eseguire nel contenitore.

    Screenshot della pagina portale di Azure Console che mostra una voce della shell personalizzata.

  7. Selezionare Connetti.

    Screenshot della pagina portale di Azure Console che mostra il comando 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:

Screenshot che mostra l'output del comando jps.

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:

Screenshot che mostra l'output del comando jstat.

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 jpsesempio , jcmde 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.
  • 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 / yumdi sistema .

  • Poiché alcune funzionalità di Linux non sono consentite, gli strumenti che richiedono privilegi speciali, ad esempio tcpdump, non funzionano.

Passaggi successivi