Eseguire il debug di un servizio in esecuzione in locale in Cloud Code per IntelliJ

Con Cloud Code, puoi eseguire il debug locale dei tuoi servizi Cloud Run in un ambiente simile a Cloud Run. Puoi impostare punti di interruzione, esaminare il tuo codice ed eseguire il debug dei servizi remoti in esecuzione nei container.

Cloud Code consente inoltre di eseguire il debug di un'applicazione apportando modifiche al codice sorgente e di eseguirne l'iterazione.

Definizione della configurazione di debug

Prima di eseguire il debug del servizio, devi creare la configurazione di debug:

  1. Vai al selettore di configurazione Esegui/Debug nella barra di navigazione e fai clic su Modifica configurazioni.
  2. Scegli Cloud Run: Esegui localmente in Codice Cloud: Cloud Run.
  3. Fai clic su OK.

Debug del servizio

Per eseguire il debug del servizio, segui questi passaggi:

  1. Fai clic su icona azione di debug Debug per Cloud Run: Esegui localmente per avviare il ciclo di sviluppo in modalità di debug.

    Clic su Esegui in Cloud Run: esegui localmente in modalità di debug

  2. Cloud Code allegherà una sessione di debug. Una volta completata l'operazione, si apre la finestra dello strumento di debug, che conferma la connessione (nella scheda Console).

  3. Fai clic sul margine nella riga eseguibile del codice in cui vuoi aggiungere un punto di interruzione.

    I cerchi pieni di colore rosso indicano i punti di interruzione attivi, mentre i cerchi cavi vuoti sottolineati in rosso indicano i punti di interruzione disattivati.

  4. Per accedere al servizio in esecuzione, fai clic sull'URL visualizzato nel riquadro Log degli eventi.

    Quando lo fai, verrà inviata una nuova richiesta al tuo servizio, che verrà messa in pausa in corrispondenza della riga contrassegnata come "punto di interruzione".

    Log eventi con notifica di deployment riuscita e URL per visualizzare l'anteprima del servizio

  5. Per terminare la sessione di debug, fai clic sull'icona di interruzione nella configurazione di Cloud Run: Run Local.

IDE supportati

La tabella seguente elenca le lingue e gli IDE supportati da Cloud Code per il debug. Nella tabella sono elencati anche i plug-in necessari, se possibile:

Lingua IDE e versioni supportati Plug-in necessario
Java IntelliJ IDEA Ultimate N/A
Community di IntelliJ IDEA N/A
Go IntelliJ IDEA Ultimate Plug-in Go
GoLand N/A
Node.js IntelliJ IDEA Ultimate Plug-in Node.js
Tempesta web N/A
Python IntelliJ IDEA Ultimate Plug-in Python
Professionista PyCharm N/A

Per ulteriori informazioni sul supporto IDE, consulta la pagina relativa agli IDE JetBrains supportati.

Con Cloud Code, puoi impostare punti di interruzione ed eseguire il debug delle applicazioni remote in esecuzione nei container per i seguenti linguaggi:

Java

Cloud Code aggiunge automaticamente una variabile di ambiente JAVA_TOOL_OPTIONS con la configurazione JDWP appropriata per abilitare il debug. Se JAVA_TOOL_OPTIONS è già presente, Cloud Code utilizza le impostazioni esistenti specificate in JAVA_TOOL_OPTIONS.

Node.js

A seconda della struttura dell'applicazione e della configurazione della build dell'immagine, potresti dover aiutare il debugger a mappare le tue origini locali sulle origini remote nel container. Ciò consente al debugger di nodi di elaborare correttamente i punti di interruzione.

Puoi configurare questa modalità in uno dei seguenti modi:

  • Configurazione manuale

    Seleziona Cloud Run: Run Localmente Esegui configurazione dal menu a discesa, quindi fai clic su Modifica configurazioni. Nella scheda Debug, configura il mapping di origine dall'origine dell'applicazione locale alla località di origine nel container remoto.

    Scelta di una posizione di origine nella sezione di mappatura di origine della scheda Debug

    Opzioni di configurazione:

    • File/directory: il file o la directory locale dell'applicazione in esecuzione su Cloud Run.
    • Percorso remoto: il percorso del file o della directory in esecuzione nel container su Cloud Run.
  • Configurazione automatica

    Puoi scegliere di rimandare questa mappatura a Cloud Code. Quando inizi la sessione di debug, Cloud Code tenta di dedurre questa mappatura automaticamente. La mappatura dedotta ti viene mostrata in una finestra di dialogo, una per ogni elemento per cui esegui il debug.

    Finestra di dialogo della mappatura del percorso remoto per ogni artefatto che specifica il percorso remoto utilizzato

    Opzioni di configurazione:

    • Percorso locale: il percorso locale verso la radice dell'artefatto di cui stai eseguendo il debug.
    • Percorso remoto: il percorso del file o della directory in esecuzione nel container su Cloud Run. Puoi scegliere di eseguire l'override di questo valore con il tuo valore. Se fai clic su Annulla, non viene applicata alcuna mappatura.

Go

Per configurare l'applicazione per il debug, l'app deve essere un'applicazione basata su Go Module e identificarsi come basata su Go impostando una delle variabili di ambiente di runtime Go standard nel container, ad esempio GODEBUG, GOGC, GOMAXPROCS o GOTRACEBACK. GOTRACEBACK=single è l'impostazione predefinita per Go e GOTRACEBACK=all è una configurazione generalmente utile.

(Facoltativo, ma consigliato) L'app deve essere creata con le opzioni -gcflags='all=-N -l' per disattivare le ottimizzazioni. I Profili Skaffold sono un'opzione utile per questo scopo e possono essere impostati con il campo Profilo di deployment nella configurazione di Run nella scheda Build/Deploy.

Python

Per configurare l'applicazione per il debug, assicurati che siano soddisfatti i seguenti prerequisiti:

  • IDE, edizione e plug-in compatibili

    Per trovare IDE, versioni e plug-in compatibili, consulta la pagina relativa agli IDE supportati.

  • La versione di Skaffold è 1.25.0 o successiva

    Puoi consentire a Cloud Code di gestire le tue dipendenze o indirizzare a un'installazione locale di Skaffold. Vedi Preferences > Tools > Cloud Code > Dependencies.

  • La funzionalità Interprete Python è configurata

    Senza un interprete Python configurato nel tuo progetto, il debug non funzionerà perché non è possibile eseguire pydevd, il debugger Python sottostante.

    IDE Modalità di configurazione
    IDA IntelliJ Il debug Python con Cloud Code richiede la configurazione di un SDK Python per il progetto.

    Vai a File > Project Structured e aggiungi un SDK Python nella scheda Project. Se non esiste, aggiungine uno nella scheda SDK.
    PyCharm Vai a File > Settings > Project > Python Interpreter o per Mac OS X, PyCharm > Preferences > Project > Python Interpreter e aggiungi un interprete Python.

Per ulteriori informazioni, consulta la documentazione di debug di Skaffold.

Richiedere assistenza

Per inviare feedback o segnalare un problema nel tuo IDE per IntelliJ, vai a Strumenti > Cloud Code > Guida / Informazioni > Invia un feedback o segnala un problema per segnalare un problema su GitHub o fai una domanda su Stack Overflow.

Puoi anche iscriverti al canale #cloud-code, che fa parte della community Google Cloud Slack.