Con Cloud Code, puoi eseguire il debug dei servizi Cloud Run localmente in un ambiente simile a Cloud Run. Puoi impostare breakpoint, eseguire il codice passo passo e eseguire il debug dei servizi remoti in esecuzione in contenitori.
Cloud Code ti consente inoltre di eseguire il debug di un'applicazione mentre apporti modifiche e iterazioni al codice sorgente.
Definire la configurazione di debug
Prima di eseguire il debug del servizio, devi creare la configurazione di debug:
- Vai al selettore di configurazione Esegui/Esegui debug nella barra di navigazione e fai clic su Modifica configurazioni.
- Scegli Cloud Run: Esegui localmente in Cloud Code: Cloud Run.
- Fai clic su OK.
Eseguire il debug del servizio
Per eseguire il debug del servizio:
Fai clic su Esegui il debug per Cloud Run: Esegui localmente per avviare il ciclo di sviluppo in modalità di debug.
Cloud Code collegherà una sessione di debug. Al termine dell'operazione, si apre la finestra dello strumento di debug, che conferma la connessione (nella scheda Console).
Fai clic sul riquadro nella riga eseguibile del codice in cui vuoi inserire un punto di interruzione.
I cerchi pieni rossi indicano i punti di interruzione attivi, mentre i cerchi vuoti con contorno rosso indicano i punti di interruzione disattivati.
Per accedere al servizio in esecuzione, fai clic sull'URL visualizzato nel riquadro Log eventi.
In questo caso, viene inviata una nuova richiesta al servizio, che viene messa in pausa alla riga contrassegnata dalla interruzione.
Per terminare la sessione di debug, fai clic sull'icona di interruzione in Cloud Run: Esegui configurazione di esecuzione locale.
IDE supportati
La tabella seguente elenca le lingue e le IDE supportate da Cloud Code per il debugging. La tabella elenca anche i plug-in richiesti, se applicabili:
Lingua | IDE e versioni supportati | Plug-in obbligatorio |
---|---|---|
Java | IntelliJ IDEA Ultimate | N/D |
Community di IntelliJ IDEA | 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 dell'IDE, consulta IDE JetBrains supportati.
Con Cloud Code, puoi impostare i breakpoint e eseguire il debugging di applicazioni remote in esecuzione in container per i seguenti linguaggi:
Java
Cloud Code aggiunge automaticamente una variabile di ambiente,JAVA_TOOL_OPTIONS
, con la configurazione JDWP appropriata per attivare 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 compilazione dell'immagine, potrebbe essere necessario aiutare il debugger a mappare le origini locali alle origini remote nel contenitore. In questo modo, il debugger Node può elaborare correttamente i breakpoint.
Puoi configurarlo in uno dei seguenti modi:
Configurazione manuale
Seleziona la configurazione di esecuzione Cloud Run: Esegui localmente dal menu a discesa, quindi fai clic su Modifica configurazioni. Nella scheda Debug, configura la mappatura dell'origine dall'origine dell'applicazione locale alla posizione dell'origine nel contenitore remoto.
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. Quando inizi la sessione di debug, Cloud Code tenta di dedurre automaticamente questa mappatura. La mappatura dedotta viene presentata in una dialogo, una per ogni elemento di cui stai eseguendo il debug.
Opzioni di configurazione:
- Percorso locale: il percorso locale alla radice dell'elemento 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 sovrascriverlo con il tuo valore. 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 contenitore, ad esempio GODEBUG
, GOGC
, GOMAXPROCS
o GOTRACEBACK
. GOTRACEBACK=single
è l'impostazione predefinita per Go
e GOTRACEBACK=all
è una configurazione generalmente utile.
Se vuoi (ma è consigliabile), 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 esecuzione nella scheda Compilazione/deployment.
Python
Per configurare l'applicazione per il debug, assicurati di soddisfare i seguenti prerequisiti:
IDE, versione e plug-in sono compatibili
Per IDE, versioni e plug-in compatibili, consulta IDE supportati.
La versione di Skaffold è 1.25.0 o successiva
Puoi consentire a Cloud Code di gestire le tue dipendenze o fare riferimento a un'installazione Skaffold locale. Consulta Preferenze > Strumenti > Cloud Code > Dipendenze.
L'interprete Python è configurato
Senza un interprete Python configurato nel progetto, il debugging non funzionerà, in quanto 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 progetto.
Vai a File > Struttura progetto e aggiungi un SDK Python nella scheda Progetto. Se non esiste, 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 sul debug di Skaffold.