Share via


Connessione a un'istanza dell'app per la risoluzione dei problemi

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

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 Azure Spring Apps Connessione Role. Connessione a un'istanza dell'app richiede 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 of the Access Control(IAM) page showing the Add role assignment command.

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

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

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

  7. Seleziona Rivedi + assegna.

Connessione 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 of the Azure portal Console page showing an app instance.

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

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

  7. Selezionare Connetti.

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

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

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

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