Cloud Code for IntelliJ ti consente di eseguire facilmente il debug delle applicazioni di cui è stato eseguito il deployment in un cluster Kubernetes. Puoi eseguire il debug di un'applicazione su un cluster locale (come minikube o Docker Desktop), Google Kubernetes Engine o qualsiasi altro provider cloud.
Grazie al supporto del debug di Cloud Code, puoi saltare la configurazione manuale, ad esempio la configurazione del port forwarding, l'installazione di un backend di debug o l'inserimento di argomenti di debug specifici della lingua nel modo giusto. Tutto ciò che ti serve è un'applicazione Kubernetes pronta per Cloud Code che includa un file di configurazione skaffold.yaml.
Cloud Code ti consente anche di eseguire il debug di un'applicazione mentre apporti modifiche e iterazioni al codice sorgente.
IDE supportati
La tabella seguente elenca le lingue e gli IDE supportati da Cloud Code per il debug. La tabella elenca anche i plug-in richiesti, se applicabile:
| Lingua | IDE e versioni supportati | Plug-in richiesto |
|---|---|---|
| Java | IntelliJ IDEA Ultimate | N/D |
| IntelliJ IDEA Community | N/D | |
| Go | 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 in container per le seguenti lingue:
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 build dell'immagine, potresti dover aiutare il debugger a mappare le origini locali alle origini remote nel container. Ciò consente al debugger di nodi di elaborare correttamente i punti di interruzione.
Puoi configurarlo in uno dei seguenti modi:
Configurazione manuale
Seleziona la configurazione di esecuzione Sviluppa su Kubernetes 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.

Opzioni di configurazione:
- File/directory: il file o la directory locale dell'applicazione in esecuzione su Kubernetes.
- Percorso remoto: il percorso del file o della directory in esecuzione nel container su Kubernetes.
Configurazione automatica
Puoi scegliere di posticipare questa mappatura a Cloud Code. Quando avvii la sessione di debug, Cloud Code tenta di dedurre automaticamente questo mapping. La mappatura dedotta viene presentata in una finestra di dialogo, una per ogni artefatto che stai eseguendo il debug.

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 Kubernetes. Puoi scegliere di ignorare questa impostazione con un valore personalizzato. Se fai clic su Annulla, non viene applicata alcuna mappatura.
Go
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.
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, vedi IDE supportati.
La versione di Skaffold è 1.25.0 o successive
Puoi consentire a Cloud Code di gestire le dipendenze o indirizzare 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 > Project Structure (File > Struttura progetto) e aggiungi un SDK Python nella scheda Project (Progetto). Se non ne esiste nessuno, 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 saperne di più, consulta la documentazione di debug di Skaffold.
Eseguire il debug di un'applicazione
Per avviare il ciclo di sviluppo in modalità di debug sul cluster Kubernetes, fai clic sull'azione di debug per
Sviluppa su Kubernetes.
Il ciclo di sviluppo continuo viene avviato in modalità di debug.
Cloud Code collega una sessione di debug:
Ora puoi eseguire le attività che svolgi normalmente durante il debug del codice locale, come impostare punti di interruzione e scorrere il codice, su un cluster Kubernetes attivo.
Per terminare la sessione di debug, fai clic sull'icona di interruzione nella configurazione di esecuzione Sviluppa su Kubernetes.
Passaggi successivi
- Utilizza la sincronizzazione dei file e il ricaricamento rapido per velocizzare lo sviluppo.
- Configura un ambiente di sviluppo continuo in Cloud Code.
- Visualizza i log di Kubernetes in Cloud Code.