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

Cloud Code for VS Code ti 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 la pagina Debug con Skaffold.

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

Esegui il debug del tuo servizio Cloud Run

Per eseguire il debug del servizio, segui questi passaggi:

  1. Per eseguire il tuo servizio e collegarvi una sessione di debug, apri la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P o fai clic su Visualizza > Tavolozza dei comandi) ed esegui il comando Debug on Cloud Run Emulator.

  2. Nella finestra di dialogo Esegui/Debug sull'emulatore Cloud Run, imposta le specifiche per la configurazione:

    • Scegli Docker o Buildpacks come builder e specifica il tuo Dockerfile o Buildpack.
    • (Facoltativo) Per specificare la destinazione o gli argomenti di build del Dockerfile, fai clic su Mostra impostazioni avanzate di build e specifica la destinazione o gli argomenti.
    • (Facoltativo) Per specificare un nome di servizio personalizzato, l'URL dell'immagine container, la porta del container, l'identità per il servizio da utilizzare, il numero di CPU dedicate o la quantità di memoria da allocare a ogni istanza di container, fai clic su Mostra impostazioni avanzate del servizio e specifica i valori.
    • (Facoltativo) Per specificare eventuali variabili di ambiente, fai clic su Mostra impostazioni avanzate del servizio, poi su Variabili di ambiente e infine specifica i valori.
    • (Facoltativo) Per specificare le connessioni Cloud SQL, fai clic su Connessioni, quindi 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 ed esegui automaticamente alle modifiche.

    Se vuoi personalizzare ulteriormente l'esecuzione del servizio, puoi modificare direttamente il file launch.json.

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

  4. Se richiesto, autentica le credenziali per eseguire ed eseguire il debug localmente.

  5. Per ogni container di cui è possibile eseguire il debug nel 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.

    Prompt radice remota

    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 all'applicazione, Cloud Code esegue nuovamente il deployment dell'applicazione e configura una nuova sessione di debug. Puoi attivare/disattivare questa funzionalità con il flag watch nella configurazione di avvio del progetto.

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

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

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

    Sezione Punti di interruzione nel riquadro a sinistra di Vista di debug che consente di aggiungere, rimuovere e disattivare i punti di interruzione

    Quando invii una nuova richiesta al tuo servizio, questo viene sospeso in corrispondenza della riga specificata.

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

    • Visualizza i log: apri i log delle applicazioni di un deployment specifico con Esplora log di Cloud Code
    • Apri URL: apri l'URL del servizio delle applicazioni di un servizio specifico in un browser web
  8. Se hai disattivato la modalità di monitoraggio nella configurazione di avvio e vuoi apportare modifiche all'applicazione, ricompilare e rieseguire il deployment dell'applicazione, fai clic sulla barra di stato di Cloud Code e poi su Attiva la modalità di visualizzazione.

  9. Se vuoi esaminare 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 debugger del riquadro in basso.

  10. Per arrestare il deployment, fai clic sul pulsante Arresta nella barra delle azioni per il deployment attuale.

    Barra delle azioni per il deployment di Cloud Run

Risolvere i problemi di creazione di container

Se ricevi il codice di errore BUILD_DOCKER_UNKNOWN, significa che si è verificato un problema con Docker. Per risolvere il problema, esegui una o più delle seguenti attività:

  • Riavvia Docker e prova di nuovo a creare il container.

  • Se l'errore persiste dopo il riavvio, è possibile che Docker stia esaurendo lo spazio su disco. Per scoprire di più sulla pulizia degli oggetti inutilizzati in Docker, consulta Eliminare gli oggetti Docker inutilizzati.

  • Prova l'estensione Utilizzo del disco di Docker per recuperare spazio.

Dettagli della configurazione

Cloud Code gestisce i seguenti dettagli di configurazione specifici per i vari linguaggi:

Node.js

Riscrittura del punto di ingresso da richiamare:

node --inspect=localhost:9229

Python

Installazione del modulo ptvsd utilizzando un container di inizializzazione e riscrittura del punto di ingresso per richiamare:

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

Go

Installando il Debugger dlv utilizzando un container Init e riscrivendo il punto di ingresso in modo che la sessione di debug avviata venga eseguita solo con un server di debug (in modalità headless), il processo di debug si prosegue all'avvio, accetti più connessioni client e ascolti localhost:56268:

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

Java

Aggiunta di un ambiente JAVA_TOOLS_OPTIONS con la configurazione JDWP (Java Debug Wire Protocol) appropriata in modo che l'agente di debug JDWP ascolti 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

È configurato per il deployment delle applicazioni .NET Core insieme a vsdbg per VS Code.

In caso di problemi con la configurazione automatica, consulta Configurazione e configurazione del debugger dettagliati per assistenza nella risoluzione dei problemi.

Richiedi assistenza

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