Eseguire il debug di un servizio in esecuzione locale in Cloud Code for IntelliJ
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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.
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: Run Locally (Cloud Run: esegui localmente) in Cloud Code: Cloud Run.
Fai clic su OK.
Esecuzione del debug del servizio
Per eseguire il debug del servizio, segui questi passaggi:
Fai clic su Debug per Cloud Run: Run Locally (Cloud Run: esegui in locale) per avviare il ciclo di sviluppo in
modalità di debug.
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).
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.
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.
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:
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.
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.
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 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.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eCloud Code allows local debugging of Cloud Run services in a Cloud Run-like environment, enabling users to set breakpoints, step through code, and debug remote services running in containers.\u003c/p\u003e\n"],["\u003cp\u003eDebugging a service requires creating a debug configuration by selecting "Cloud Run: Run Locally" under "Cloud Code: Cloud Run" in the Run/Debug configurations.\u003c/p\u003e\n"],["\u003cp\u003eCloud Code supports debugging for Java, Go, Node.js, and Python, with specific IDEs and plugin requirements detailed for each language.\u003c/p\u003e\n"],["\u003cp\u003eNode.js debugging may require manual or automatic source mapping to align local and remote sources, while Go applications need to be Go Module-based and may benefit from specific build options.\u003c/p\u003e\n"],["\u003cp\u003ePython debugging requires a Python SDK configured within your project's IDE, and it also requires a skaffold version of 1.25.0 or greater.\u003c/p\u003e\n"]]],[],null,["# Debug a locally running service in Cloud Code for IntelliJ\n\n| **Note:** Debugging support is currently available for Java, Go, Node.js, and Python services.\n\nWith Cloud Code, you can debug your Cloud Run services\nlocally in a Cloud Run-like environment. You can set breakpoints, step through\nyour code, and debug remote services running in containers.\n\nCloud Code also enables you to [debug an application while making\nchanges to, and iterating on, source code](/code/docs/intellij/watch-modes#applying-changes-while-debugging).\n\nDefining your debug configuration\n---------------------------------\n\nBefore you debug your service, you must create your debug configuration:\n\n1. Navigate to **Run/Debug** configuration selector in the Navigation bar and click **Edit Configurations**.\n2. Choose **Cloud Run: Run Locally** under **Cloud Code: Cloud Run**.\n3. Click **OK**.\n\nDebugging your service\n----------------------\n\nTo debug your service, follow these steps:\n\n1. Click\n **Debug** for **Cloud Run: Run Locally** to start the development cycle in\n debug mode.\n\n2. Cloud Code will attach a debug session. Once successful, the Debug Tool\n window opens, confirming connection (within the Console tab).\n\n3. Click the gutter at the executable line of the code where you want to\n add a breakpoint.\n\n Red filled circles denote active breakpoints, while red-outlined hollow\n circles signify disabled breakpoints.\n4. To access your running service, click the URL displayed in your Event Log panel.\n\n When you do, a new request is sent to your service and it pauses at the\n breakpoint-marked line.\n\n5. To end the debugging session, click the stop icon on the\n Cloud Run: Run Locally run configuration.\n\nSupported IDEs\n--------------\n\nThe following table lists the languages and IDEs that Cloud Code supports for\ndebugging. The table also lists the required plugins, where applicable:\n\nFor more information about IDE support, see\n[Supported JetBrains IDEs](/code/docs/intellij/ides).\n\nWith Cloud Code, you can set breakpoints and\ndebug remote applications running in containers for the following languages: \n\n### Java\n\nCloud Code automatically adds an environment variable,\n`JAVA_TOOL_OPTIONS`, with the appropriate JDWP configuration to\nenable debugging. If `JAVA_TOOL_OPTIONS` is already present,\nCloud Code uses existing settings specified in\n`JAVA_TOOL_OPTIONS`.\n\n### Node.js\n\nDepending on the structure of your application and its image build\nconfiguration, you might have to help the debugger map your local sources\nto the remote sources in the container. This enables the Node debugger\nto correctly process your breakpoints.\n\nYou can configure this in one of the following ways:\n\n- **Manual configuration**\n\n Select the **Cloud Run: Run Locally** Run Configuration from the dropdown\n and then click **Edit Configurations** . On the **Debug** tab, configure the\n source mapping from your local application source to the source\n location in the remote container.\n\n Configuration options:\n - **File/directory** - the local file or directory of your application running on Cloud Run.\n - **Remote path** - the path to the file or directory running in the container on Cloud Run.\n- **Automatic configuration**\n\n You can choose to defer this mapping to Cloud Code. When you\n start your debug session, Cloud Code attempts to infer\n this mapping automatically. The inferred mapping is presented to you in a\n dialog; one dialog for each artifact you are debugging.\n\n Configuration options:\n - **Local path** - the local path to the root of the artifact you are debugging.\n - **Remote path** - the path to the file or directory running in the container on Cloud Run. You can choose to override this with your own value. If you click **Cancel**, no mapping is applied.\n\n | **Note:** Automatic mapping is a best effort guess based on heuristics.\n\n### Go\n\nTo configure your application for debugging, your app must be a\n[Go Module](https://blog.golang.org/using-go-modules)-based application\nand be identified as being Go-based by setting one of the\n[standard Go runtime environment variables](https://godoc.org/runtime)\nin the container, such as `GODEBUG`, `GOGC`, `GOMAXPROCS`, or\n`GOTRACEBACK`. `GOTRACEBACK=single` is the default setting for Go\nand `GOTRACEBACK=all` is a generally useful configuration.\n\nOptionally (but recommended), your app should be built with the\n`-gcflags='all=-N -l'` options to disable optimizations. Skaffold\n[Profiles](https://skaffold.dev/docs/environment/profiles/) are a useful\noption for this purpose and can be set with the **Deployment Profile**\nfield in your Run configuration on the **Build/Deploy** tab.\n\n### Python\n\nTo configure your application for debugging, ensure you meet the following\nprerequisites:\n\n- **IDE, edition, and plugin are compatible**\n\n For compatible IDEs, editions, and plugins, see\n [Supported IDEs](#supported_ides).\n- **Skaffold version is 1.25.0 or greater**\n\n You can allow Cloud Code to [manage your dependencies](/code/docs/intellij/install#managed_dependencies),\n or point to a local Skaffold installation. See **Preferences \\\u003e Tools \\\u003e\n Cloud Code \\\u003e Dependencies**.\n- **Python interpreter is configured**\n\n Without a Python interpreter configured in your project,\n debugging won't work, as there is no way to run `pydevd`, the\n underlying Python debugger.\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\nFor more information, see the [Skaffold debug\ndocumentation](https://skaffold.dev/docs/workflows/debug/).\n\nGet support\n-----------\n\nTo submit feedback or report an issue in your IntelliJ IDE, go to **Tools** \\\u003e **Cloud Code** \\\u003e **Help / About** \\\u003e **Submit\nfeedback or report an issue** to report an issue on [GitHub](https://github.com/GoogleCloudPlatform/cloud-code-intellij/issues)."]]