Esegui il debug di un servizio in esecuzione in locale in Cloud Code for IntelliJ

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

Cloud Code consente inoltre di eseguire il debug di un'applicazione durante la modifica e l'iterazione del codice sorgente.

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 in locale in Cloud Code: Cloud Run.
  3. Fai clic su Ok.

Debug del servizio

Per eseguire il debug del servizio:

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

    Facendo clic su Esegui su Cloud Run: Esegui localmente in modalità di debug

  2. Cloud Code collegherà una sessione di debug. Una volta eseguita l'operazione, si apre la finestra Strumento di debug, che conferma la connessione (nella scheda Console).

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

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

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

    Quando lo fai, viene inviata una nuova richiesta al servizio che si interrompe in corrispondenza della riga contrassegnata dal punto di interruzione.

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

  5. Per terminare la sessione di debug, fai clic sull'icona di interruzione in Cloud Run: esegui la configurazione di esecuzione locale.

IDE supportati

Nella tabella seguente sono elencati i linguaggi e gli IDE supportati da Cloud Code per il debug. Nella tabella sono elencati anche i plug-in richiesti, ove applicabile:

linguaggio IDE e versioni supportati Plug-in obbligatorio
Java IntelliJ IDEA Ultimate N/A
Community IntelliJ IDEA N/A
Go IntelliJ IDEA Ultimate Plug-in Go
GoLand N/A
Node.js IntelliJ IDEA Ultimate Plug-in Node.js
WebStorm N/A
Python IntelliJ IDEA Ultimate Plug-in Python
Professionista PyCharm N/A

Per ulteriori informazioni sul supporto degli 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 di build delle immagini, potrebbe essere necessario aiutare il debugger a mappare le origini locali alle origini remote nel container. In questo modo il debugger dei nodi può elaborare correttamente i punti di interruzione.

Puoi configurare questa opzione in uno dei seguenti modi:

  • Configurazione manuale

    Seleziona Cloud Run: Run Locally Run Configuration dal menu a discesa, quindi fai clic su Edit Configurations (Modifica configurazioni). Nella scheda Debug, configura il mapping delle origini dall'origine dell'applicazione locale alla località di origine nel container remoto.

    Scegliere una posizione di origine nella sezione di mappatura delle origini della scheda Debug

    Opzioni di configurazione:

    • File/directory: il file o la directory locale della tua 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. All'avvio della sessione di debug, Cloud Code cerca di dedurre automaticamente questa mappatura. Il mapping dedotto viene presentato in una finestra di dialogo con una finestra di dialogo per ogni artefatto di cui stai eseguendo il debug.

    Finestra di dialogo di mappatura del percorso remoto per ogni artefatto che specifica il percorso remoto in uso

    Opzioni di configurazione:

    • Percorso locale: il percorso locale alla 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 questa impostazione con un valore personalizzato. 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 ed essere identificata 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.

Facoltativamente, ma consigliato, la tua app deve essere creata con le opzioni -gcflags='all=-N -l' per disabilitare le ottimizzazioni. I profili di Skaffold sono un'opzione utile a questo scopo e possono essere impostati con il campo Profilo di deployment nella configurazione Esegui nella scheda Crea/Esegui il deployment.

Python

Per configurare la tua applicazione per il debug, assicurati di soddisfare i seguenti prerequisiti:

  • IDE, versione e plug-in sono compatibili

    Per gli IDE, le versioni e i 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 dipendenze o puntare a un'installazione Skaffold locale. Vedi Preferenze > Strumenti > Cloud Code > Dipendenze.

  • L'interprete Python è configurato

    Se nel progetto non è configurato un interprete Python, il debug non funzionerà, in quanto non è possibile eseguire pydevd, il debugger di Python sottostante.

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

    Vai a File > Struttura del progetto e aggiungi un SDK Python nella scheda Progetto. Se non ne esiste, aggiungine uno nella scheda SDK.
    PyCharm Vai a File > Impostazioni > Progetto > Interprete Python oppure, per Mac OS X, PyCharm > Preferenze > Progetto > Interprete Python e aggiungi un interprete Python.

Per ulteriori informazioni, consulta la documentazione di debug Skaffold.

Ricevi assistenza

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