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

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

Cloud Code ti consente anche di eseguire il debug di un'applicazione mentre apporti modifiche e iterazioni al 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/Esegui debug nella barra di navigazione e fai clic su Modifica configurazioni.
  2. Scegli Cloud Run: Run Locally (Cloud Run: esegui localmente) in Cloud Code: Cloud Run.
  3. Fai clic su OK.

Esecuzione del debug del servizio

Per eseguire il debug del servizio, segui questi passaggi:

  1. Fai clic su icona dell'azione di debug Debug per Cloud Run: Run Locally (Cloud Run: esegui in locale) per avviare il ciclo di sviluppo in modalità di debug.

    Fare clic su Esegui su Cloud Run: esegui in locale in modalità di debug

  2. Cloud Code collegherà 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 della riga eseguibile del codice in cui vuoi aggiungere un punto di interruzione.

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

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

    In questo modo, viene inviata una nuova richiesta al servizio e l'esecuzione si interrompe alla 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 nella configurazione di esecuzione Cloud Run: Run Locally.

IDE supportati

La seguente tabella elenca le lingue e gli IDE supportati da Cloud Code per il debug. La tabella elenca anche i plug-in richiesti, ove applicabile:

Lingua IDE e versioni supportati Plug-in richiesto
Java IntelliJ IDEA Ultimate N/D
IntelliJ IDEA Community N/D
Vai IntelliJ IDEA Ultimate Plug-in Go
GoLand N/D
Node.js IntelliJ IDEA Ultimate Plug-in Node.js
WebStorm N/D
Python IntelliJ IDEA Ultimate Plug-in Python
PyCharm Professional N/D

Per ulteriori informazioni sul supporto degli IDE, vedi IDE JetBrains supportati.

Con Cloud Code puoi impostare punti di interruzione ed eseguire il debug di 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 origini locali alle origini remote nel container. In questo modo, il debugger di Node può elaborare correttamente i punti di interruzione.

Puoi configurare questa impostazione in uno dei seguenti modi:

  • Configurazione manuale

    Seleziona la configurazione di esecuzione Cloud Run: Run Locally dal menu a discesa e poi fai clic su Modifica configurazioni. Nella scheda Debug, configura la mappatura dell'origine dall'origine dell'applicazione locale alla posizione dell'origine nel container remoto.

    Scelta di una posizione di origine nella sezione di mappatura dell'origine 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 posticipare questa mappatura a Cloud Code. Quando avvii la sessione di debug, Cloud Code tenta di dedurre questa mappatura automaticamente. La mappatura dedotta viene presentata in una finestra di dialogo, una per ogni artefatto che stai eseguendo il debug.

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

    Opzioni di configurazione:

    • Percorso locale: il percorso locale della radice dell'artefatto che 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 con un valore personalizzato. Se fai clic su Annulla, non viene applicata alcuna mappatura.

Vai

Per configurare l'applicazione per il debug, deve essere un'applicazione basata su moduli Go e deve 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 disattivare le ottimizzazioni. I profili Skaffold sono un'opzione utile a questo scopo e possono essere impostati con il campo Profilo di deployment nella configurazione di esecuzione nella scheda Build/Deploy (Compila/Esegui il deployment).

Python

Per configurare l'applicazione per il debug, assicurati di soddisfare i seguenti prerequisiti:

  • IDE, edizione e plug-in sono compatibili

    Per IDE, versioni e plug-in compatibili, vedi IDE supportati.

  • La versione di Skaffold è 1.25.0 o successive

    Puoi consentire a Cloud Code di gestire le dipendenze o puntare a un'installazione locale di Skaffold. Vedi Preferenze > Strumenti > Cloud Code > Dipendenze.

  • L'interprete Python è configurato

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

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

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

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

Assistenza

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