Eseguire il debug di un servizio Cloud Run in Cloud Code per Cloud Shell

Cloud Code per Cloud Shell 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 la configurazione dell'inoltro delle porte o l'inserimento di argomenti di debug specifici per la 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.

Eseguire il debug del servizio Cloud Run

Per eseguire il debug del servizio:

  1. Per eseguire il servizio e collegare una sessione di debug, apri la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P o fai clic su Visualizza > Tavolozza comandi), quindi esegui il comando Esegui il debug nell'emulatore Cloud Run.

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

    • Scegli Docker o Buildpack come builder, quindi specifica il Dockerfile o il Buildpack.
    • (Facoltativo) Per specificare una destinazione Dockerfile o argomenti di build, fai clic su Mostra impostazioni di build avanzate e poi 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à da utilizzare per il servizio, il numero di CPU dedicate o la quantità di memoria da allocare a ogni istanza del container, fai clic su Mostra impostazioni di servizio avanzate e poi specifica i valori.
    • (Facoltativo) Per specificare le variabili di ambiente, fai clic su Mostra impostazioni di servizio avanzate, poi su Variabili di ambiente, e poi specifica i valori.
    • (Facoltativo) Per specificare le connessioni Cloud SQL, fai clic su Connessioni e poi specifica una connessione per riga.

    Se vuoi personalizzare ulteriormente la modalità di esecuzione del servizio, puoi modificare il tuo launch.json file direttamente.

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

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

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

    Per impostazione predefinita, quando le modifiche all'applicazione vengono salvate automaticamente, Cloud Code esegue nuovamente il deployment dell'applicazione e configura una nuova sessione di debug. Puoi attivare o 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 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.

    Quando invii una nuova richiesta al servizio, questa si interrompe alla riga che hai specificato.

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

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

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

  9. Per arrestare il deployment, fai clic sul pulsante Arresta nella barra delle azioni del deployment corrente.

    Barra delle azioni per il deployment di Cloud Run

Risolvere i problemi di creazione dei container

Se viene visualizzato 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 a creare di nuovo il container.

  • Se continui a ricevere lo stesso errore dopo il riavvio, è possibile che Docker stia esaurendo lo spazio su disco. Per scoprire di più sulla pulizia degli oggetti non utilizzati in Docker, consulta Eliminare gli oggetti Docker non utilizzati.

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

Dettagli configurazione

Cloud Code gestisce i seguenti dettagli di configurazione specifici per la lingua:

Node.js

Riscrivere il punto di ingresso per richiamare:

node --inspect=localhost:9229

Python

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

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

Vai

Installare il dlv debugger utilizzando un container di inizializzazione 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), continui il processo di cui è stato eseguito il debug all'avvio, accetti più connessioni client e ascolti su localhost:56268:

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

Java

Aggiungere un ambiente JAVA_TOOLS_OPTIONS con la configurazione Java Debug Wire Protocol (JDWP) 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 che venga collegato il debugger:

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

.NET

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

Se riscontri problemi con la configurazione automatica, consulta Configurazione e impostazione dettagliate del debugger per ricevere assistenza per la risoluzione dei problemi.