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

Cloud Code per Cloud Shell 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 Eseguire il debug con Skaffold.

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

Eseguire il debug del servizio Cloud Run

Per eseguire il debug del servizio:

  1. Per eseguire il servizio e collegarvi una sessione di debugger, apri la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P o fai clic su Visualizza > Tavolozza comandi) e poi 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 Buildpacks come builder e poi specifica il tuo Dockerfile o il tuo buildpack.
    • (Facoltativo) Per specificare un target o gli argomenti di compilazione del Dockerfile, fai clic su Mostra impostazioni di compilazione avanzate e poi specifica il target o gli argomenti.
    • (Facoltativo) Per specificare un nome del servizio personalizzato, l'URL dell'immagine del contenitore, la porta del contenitore, l'identità da utilizzare per il servizio, il numero di CPU dedicate o la quantità di memoria da allocare a ogni istanza del contenitore, 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 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 l'esecuzione del servizio, puoi modificare direttamente il file launch.json.

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

  4. Per ogni container di cui è possibile eseguire il debug nel servizio, conferma o inserisci la directory nel container remoto in cui è stato trovato il programma di cui eseguire il debug.

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

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

    Per impostazione predefinita, quando viene salvata automaticamente una modifica Cloud Code esegue nuovamente il deployment dell'applicazione e configura un nuovo debug durante la sessione. Puoi attivare/disattivare questa funzionalità con il flag watch nella configurazione di lancio 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 rossi pieni indicano i punti di interruzione attivi, mentre i cerchi grigi vuoti indicano i punti di interruzione disattivati.

    Quando invii una nuova richiesta al tuo servizio, questo si interrompe in corrispondenza della riga 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 di applicazione di un servizio specifico in un browser web
  7. Se hai disattivato la modalità di visualizzazione nella configurazione di lancio e vuoi apportare modifiche all'applicazione, ricrearla ed eseguire nuovamente il deployment, fai clic sulla barra di stato di Cloud Code e poi su Attiva la modalità di visualizzazione.

  8. Se vuoi esaminare le variabili e le informazioni sullo stack, utilizza la classe Barra laterale di debug. Per interagire con la sessione di debug, utilizza la funzione Console di debug nel debugger del riquadro inferiore.

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

    Barra delle azioni per il deployment di Cloud Run

Risolvere i problemi di creazione dei contenitori

Se ricevi il codice di errore BUILD_DOCKER_UNKNOWN, è presente 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 continui a ricevere lo stesso errore dopo il riavvio, è possibile che Docker spazio su disco in esaurimento. Per scoprire di più sulla pulizia degli oggetti inutilizzati in Docker, consulta Eliminare gli oggetti Docker inutilizzati.

  • Prova l'utilizzo del disco di Docker per contribuire a recuperare spazio.

Dettagli configurazione

Cloud Code gestisce i seguenti dettagli di configurazione specifici per il linguaggio:

Node.js

Riscrivere l'entry point da chiamare:

node --inspect=localhost:9229

Python

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

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

Vai

L'installazione del Debugger dlv utilizzando un container di inizializzazione e riscrivendo il punto di ingresso in modo la sessione di debug viene eseguita solo con un server di debug (in modalità headless), continua sottoposto a debug all'avvio, accetta più connessioni client e rimane in ascolto 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 appropriata del protocollo JDWP (Java Debug Wire Protocol) 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 il deployment delle applicazioni .NET Core insieme a vsdbg per VS Codice.

In caso di problemi con la configurazione automatica, consulta Configurazione e impostazione del debugger dettagliate per ricevere assistenza sulla risoluzione dei problemi.