Debug di un servizio Cloud Run in Cloud Code per VS Code

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Cloud Code per VS Code consente di eseguire facilmente il debug di un'applicazione di cui è stato eseguito il deployment in Cloud Run sfruttando skaffold debug. Per informazioni dettagliate sul debug di Skaffold, consulta Debug con Skaffold.

Non è necessario completare la configurazione manuale, ad esempio configurando il port forwarding o inserendo argomenti di debug specifici per il linguaggio. Il debug richiede un'applicazione Cloud Run compatibile con Cloud Code che include un file di configurazione skaffold.yaml e un file launch.json di tipo cloudcode.cloudrun.

Debug del servizio Cloud Run

Per eseguire il debug del tuo servizio, segui questi passaggi:

  1. Per eseguire il servizio, e collegarvi una sessione del debugger, apri la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P o fai clic su View >Command Palette), quindi esegui il comando Debug su Cloud Run Emulator.

  2. Nella finestra di dialogo Esegui/Debug su Cloud Run Emulator, imposta le specifiche per la configurazione:

    • Scegli Docker o Buildpacks come builder, quindi specifica il tuo Docker o Buildpack.
    • (Facoltativo) Per specificare un target o un argomento di build Dockerfile, fai clic su Mostra impostazioni di build avanzate e specifica il target o gli argomenti.
    • (Facoltativo) Per specificare il nome di un servizio personalizzato, l'URL dell'immagine del container, la porta del container, l'identità del servizio da utilizzare, il numero di CPU dedicate o la quantità di memoria da allocare a ciascuna istanza di container, fai clic su Mostra impostazioni di servizio avanzate e specifica i valori.
    • (Facoltativo) Per specificare eventuali variabili di ambiente, fai clic su Mostra impostazioni di servizio avanzate, quindi su Variabili di ambiente e infine specifica i valori.
    • (Facoltativo) Per specificare le connessioni Cloud SQL, fai clic su Connessioni e specifica una connessione per riga.
    • (Facoltativo) Per fare in modo che VS Code ristabilisca una sessione di debug dopo aver salvato una modifica al codice, seleziona la casella di controllo Ricrea automaticamente ed esegui di nuovo le modifiche.

    Se vuoi personalizzare ulteriormente il modo in cui vengono eseguiti i tuoi servizi, puoi modificare il file launch.json direttamente.

  3. Per iniziare il debug del servizio, fai clic su Debug.

  4. Per ogni container di cui è possibile eseguire il debug nel tuo servizio, conferma o inserisci la directory nel container remoto in cui si trova il programma di cui vuoi eseguire il debug.

    In alternativa, puoi premere ESC per saltare il debug di un contenitore.

    Messaggio root remoto

    Cloud Code collega una sessione di debug per ogni container di cui è possibile eseguire il debug nel servizio.

    Per impostazione predefinita, quando salvi una modifica nella tua applicazione, Cloud Code esegue nuovamente il deployment della tua applicazione e configura una nuova sessione di debug. Puoi attivare/disattivare questa funzionalità con il flag watch nella configurazione di avvio del progetto.

  5. Per aggiungere un punto di interruzione, fai clic sul margine dell'editor del file di cui esegui il debug.

    I cerchi riempiti rossi indicano i punti di interruzione attivi, mentre i cerchi vuoti grigi indicano i punti di interruzione disattivati.

    Per un controllo più preciso dei punti di interruzione, puoi utilizzare la sezione Punti di interruzione nella visualizzazione Debug del codice VS.

    Sezione Punti di interruzione nel riquadro a sinistra della Vista debug che consente l'aggiunta, la rimozione e la disattivazione dei punti di interruzione

    Quando invii una nuova richiesta al tuo servizio, questa viene messa in pausa sulla riga specificata.

  6. Al termine della sessione, fai clic con il tasto destro del mouse per utilizzare i comandi seguenti:

    • Visualizza log: apri i log delle applicazioni di un deployment specifico con Cloud Code Logs Explorer.
    • Apri URL: apri l'URL del servizio dell'applicazione di un servizio specifico in un browser web.
  7. Se hai disattivato la modalità orologio nella configurazione di avvio e vuoi apportare modifiche all'applicazione, nonché ricostruire ed eseguire nuovamente il deployment dell'applicazione, fai clic sulla barra di stato di Cloud Code, quindi fai clic su Attiva modalità orologio.

  8. Se vuoi controllare le variabili e le informazioni sullo stack, utilizza la barra laterale di debug. Per interagire con la sessione di debug, utilizza la console di debug nel riquadro del riquadro inferiore.

  9. Per interrompere il deployment, fai clic sul pulsante Stop nella barra delle azioni del deployment attuale.

    Barra delle azioni per il deployment di Cloud Run

Dettagli della configurazione

Cloud Code gestisce i seguenti dettagli di configurazione specifici del linguaggio:

Node.js

Riscrittura del punto di ingresso da richiamare:

node --inspect=localhost:9229

Python

Installare il modulo ptvsd utilizzando un container Init e riscrivere il punto di ingresso per richiamare:

python -m ptvsd --host localhost --port 5678

Go

Installare il debugr dlv utilizzando un container Init e riscrivere il punto di ingresso in modo che la sessione di debug avviata venga eseguita solo con un server di debug (in modalità headless), continua il processo di debug all'avvio, accetta più connessioni client e rimane in ascolto all'indirizzo localhost:56268:

dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, <app> --

Java

L'aggiunta di un ambiente JAVA_TOOLS_OPTIONS con la configurazione JDWP (Java Debug Wire Protocol) appropriata in modo che l'agente di debug JDWP rimanga in ascolto di una connessione socket sulla porta 5005 e consenta alla VM di iniziare l'esecuzione prima del collegamento del debugger:

jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y

.NET

Le applicazioni .NET Core sono configurate per il deployment insieme a vsdbg per VS Code.

Se riscontri problemi con la configurazione automatica, consulta la pagina Configurazione e impostazione del debugger dettagliato per assistenza.

Richiedere assistenza

Per inviare feedback, segnala i problemi su GitHub o fai una domanda su Stack Overflow.