Eseguire il debug di un servizio Cloud Run in Cloud Code per VS Code
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Cloud Code per VS Code ti consente di eseguire facilmente il debug di un'applicazione di cui è stato eseguito il deployment in Cloud Run sfruttando skaffold debug. Per informazioni dettagliate sul debug di Skaffold, consulta Eseguire il debug con Skaffold.
Non è necessario completare la configurazione manuale, ad esempio la configurazione del port forwarding o l'iniezione di argomenti di debug specifici per il linguaggio. Il debug richiede un'skaffold.yamlapplicazione Cloud Run Cloud Code-readylaunch.json che includa un file di configurazione skaffold.yaml e un file launch.json di tipo cloudcode.cloudrun.
Eseguire il debug del servizio Cloud Run
Per eseguire il debug del servizio:
Per eseguire il servizio e collegarvi una sessione di debugger, apri la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P o fai clic su Visualizza > Tavolozza comandi) e poi esegui il comando Esegui il debug nell'emulatore Cloud Run.
Nella finestra di dialogo Esegui/Esegui il debug nell'emulatore Cloud Run, imposta le specifiche per la configurazione:
Scegli Docker o Buildpacks come builder e poi specifica il tuo Dockerfile o il tuo buildpack.
(Facoltativo) Per specificare un target o gli argomenti di compilazione del Dockerfile,
fai clic su Mostra impostazioni di compilazione avanzate e poi specifica il target o
gli argomenti.
(Facoltativo) Per specificare un nome del servizio personalizzato, l'URL dell'immagine del contenitore, la porta del contenitore, l'identità da utilizzare per il servizio, il numero di CPU dedicate o la quantità di memoria da allocare a ogni istanza del contenitore, fai clic su Mostra impostazioni avanzate del servizio e specifica i valori.
(Facoltativo) Per specificare eventuali
variabili di ambiente,
fai clic su Mostra impostazioni avanzate del servizio, poi su Variabili di ambiente
e specifica i valori.
(Facoltativo) Per specificare le connessioni Cloud SQL, fai clic su Connessioni
e poi specifica una connessione per riga.
(Facoltativo) Per fare in modo che VS Code ristabilisca una sessione di debug dopo aver salvato una modifica al codice, seleziona la casella di controllo Ricompila e riavvia automaticamente in caso di modifiche.
Se vuoi personalizzare ulteriormente l'esecuzione del servizio, puoi modificare direttamente il file launch.json.
Per iniziare a eseguire il debug del servizio, fai clic su Debug.
Per ogni contenitore di debug nel servizio, conferma o inserisci la directory nel contenitore remoto in cui si trova il programma da eseguire il debug.
In alternativa, puoi premere ESC per saltare il debug di un contenitore.
Cloud Code collega una sessione di debug per ogni contenitore di cui è possibile eseguire il debug nel servizio.
Per impostazione predefinita, quando salvi una modifica all'applicazione, Cloud Code esegue il redeployment dell'applicazione e configura una nuova sessione di debug. Puoi attivare/disattivare questa funzionalità con il flag watch nella configurazione di lancio del progetto.
Per aggiungere un punto di interruzione, fai clic sul margine dell'editor del file di cui stai eseguendo il debug.
I cerchi rossi pieni indicano i punti di interruzione attivi, mentre i cerchi grigi vuoti indicano i punti di interruzione disattivati.
Per un controllo più preciso dei punti di interruzione, puoi utilizzare la sezione Punti di interruzione nella visualizzazione di debug di VS Code.
Quando invii una nuova richiesta al servizio, viene messa in pausa nella riga specificata.
Al termine della sessione, fai clic con il tasto destro del mouse per utilizzare i seguenti comandi:
Visualizza log:apri i log dell'applicazione di un deployment specifico con Esplora log di Cloud Code
Apri URL:apri l'URL del servizio di applicazione di un servizio specifico in un browser web
Se hai disattivato la modalità di visualizzazione nella configurazione di lancio e vuoi apportare modifiche all'applicazione, ricrearla ed eseguire nuovamente il deployment, fai clic sulla barra di stato di Cloud Code e poi su Attiva la modalità di visualizzazione.
Se vuoi ispezionare le variabili e le informazioni sullo stack, utilizza la barra laterale di debug.
Per interagire con la sessione di debug, utilizza la console di debug nel riquadro del debugger in basso.
Per interrompere il deployment, fai clic sul pulsante Interrompi nella barra delle azioni del deployment corrente.
Risolvere i problemi di creazione dei contenitori
Se ricevi il codice di errore BUILD_DOCKER_UNKNOWN, è presente un
problema con Docker. Per risolvere il problema, esegui una o più delle seguenti attività:
Riavvia Docker e riprova a compilare il contenitore.
Se dopo il riavvio si verifica ancora lo stesso errore, è possibile che lo spazio su disco di Docker stia per esaurirsi. Per scoprire di più sulla pulizia degli oggetti inutilizzati in Docker, consulta Eliminare gli oggetti Docker inutilizzati.
Cloud Code gestisce i seguenti dettagli di configurazione specifici per il linguaggio:
Node.js
Riscrivere l'entry point da chiamare:
node --inspect=localhost:9229
Python
Installazione del modulo ptvsd utilizzando un contenitore di inizializzazione e riscrittura del punto di contatto da chiamare:
python -m ptvsd --host localhost --port 5678
Vai
Installazione del
debugger dlv
utilizzando un contenitore Init e riscrittura dell'entrypoint in modo che la sessione di debugging avviata venga eseguita solo con un server di debug (in modalità headless), continui il
processo sottoposto a debug all'avvio, accetti più connessioni client e ascolti su
localhost:56268:
Aggiunta di un ambiente JAVA_TOOLS_OPTIONS con la configurazione appropriata del protocollo JDWP (Java Debug Wire Protocol) in modo che l'agente di debug JDWP ascolti una connessione socket sulla porta 5005 e consenta alla VM di iniziare l'esecuzione prima del collegamento del debugger:
[[["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 for VS Code simplifies debugging applications deployed to Cloud Run using \u003ccode\u003eskaffold debug\u003c/code\u003e, eliminating the need for manual setup like port forwarding.\u003c/p\u003e\n"],["\u003cp\u003eDebugging requires a Cloud Code-ready Cloud Run application with \u003ccode\u003eskaffold.yaml\u003c/code\u003e and a \u003ccode\u003elaunch.json\u003c/code\u003e file of type \u003ccode\u003ecloudcode.cloudrun\u003c/code\u003e, which you can further customize.\u003c/p\u003e\n"],["\u003cp\u003eThe debugging process can be initiated via the VS Code command palette using the \u003cstrong\u003eDebug on Cloud Run Emulator\u003c/strong\u003e command, offering various configuration options like builder type, service settings, and environment variables.\u003c/p\u003e\n"],["\u003cp\u003eCloud Code automatically handles language-specific debugger configurations for Node.js, Python, Go, Java, and .NET, ensuring seamless debugging experiences.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting container-building issues, such as the \u003ccode\u003eBUILD_DOCKER_UNKNOWN\u003c/code\u003e error, can often be resolved by restarting Docker or managing disk space using tools like Docker's Disk Usage extension.\u003c/p\u003e\n"]]],[],null,["# Debug a Cloud Run service in Cloud Code for VS Code\n\nCloud Code for VS Code lets you easily debug an application deployed to\nCloud Run by leveraging\n[`skaffold debug`](https://skaffold.dev/docs/workflows/debug). For detailed\ninformation about Skaffold debugging, see\n[Debugging with Skaffold](https://skaffold.dev/docs/workflows/debug/).\n\nYou don't need to complete manual setup like setting up port forwarding or\ninjecting language-specific debug arguments. Debugging requires a\nCloud Code-ready Cloud Run application\nthat includes a `skaffold.yaml` configuration file and a `launch.json` file of\ntype `cloudcode.cloudrun`.\n\nDebug your Cloud Run service\n----------------------------\n\nTo debug your service, follow these steps:\n\n1. To run your service and attach a debugger session to it, open the\n command palette (press `Ctrl`/`Cmd`+`Shift`+`P` or click **View** \\\u003e\n **Command Palette** )\n and then run the **Debug on Cloud Run Emulator** command.\n\n2. In the Run/Debug on Cloud Run Emulator dialog, set the\n specifications for your configuration:\n\n - Choose Docker or Buildpacks as your builder and then specify your Dockerfile or Buildpack.\n - (Optional) To specify a Dockerfile target or build arguments, click **Show Advanced Build Settings** and then specify the target or arguments.\n - (Optional) To specify a custom service name, container image URL, container port, identity for the service to use, number of dedicated CPUs, or amount of memory to allocate to each container instance, click **Show Advanced Service Settings** and then specify the values.\n - (Optional) To specify any [environment variables](/code/docs/vscode/develop-service#optional_customizing_your_configuration), click **Show Advanced Service Settings** , click **Environment Variables**, and then specify the values.\n - (Optional) To specify Cloud SQL connections, click **Connections** and then specify one connection per line.\n - (Optional) To have VS Code reestablish a debugging session after you save a change to your code, check the **Automatically re-build and re-run on changes** checkbox.\n\n If you want to further customize how your service is run, you can edit\n [your `launch.json` file](/code/docs/vscode/develop-service#customizing_an_existing_launchjson_configuration)\n directly.\n3. To begin debugging your service, click **Debug**.\n\n4. If prompted, [authenticate your credentials to run and debug an\n application locally](/code/docs/vscode/install#authenticate_credentials_for_debugging_applications_locally).\n\n5. For each debuggable container in your service, confirm or enter the directory\n in the remote container where the program you'd like to debug is found.\n\n Alternatively, you can press `ESC` to skip debugging a container.\n\n Cloud Code attaches a debug session for each debuggable\n container in the service.\n\n\n By default, when you save a change to your application,\n Cloud Code redeploys your application and sets up a new debug\n session. You can toggle this feature with the `watch` flag in your project's\n launch configuration.\n\n6. To add a breakpoint, click in the editor margin of the file you're debugging.\n\n Red filled circles signify active breakpoints and gray hollow circles\n signify disabled breakpoints.\n\n For finer breakpoint control, you can use the Breakpoints section in VS\n Code's Debug view.\n\n When you send a new request to your service, it pauses at the line you\n specified.\n7. After your session completes, right-click to use the following commands:\n\n - **View Logs:** Open the application logs of a specific deployment with the Cloud Code Logs Explorer\n - **Open URL:** Open the application service URL of a specific service in a web browser\n8. If you've turned off watch mode in your launch configuration and you want to\n make changes to your application and rebuild and redeploy the application,\n click the Cloud Code status bar and then click\n **Turn on watch mode**.\n\n9. If you want to inspect variables and stack info, use the\n [Debug Sidebar](https://code.visualstudio.com/Docs/editor/debugging).\n To interact with the debugging session, use the\n [Debug Console](https://code.visualstudio.com/Docs/editor/debugging#_debug-console-repl)\n in the bottom pane debugger.\n\n10. To stop your deployment, click the **Stop** button in the action bar for your\n current deployment.\n\n### Troubleshoot container-building issues\n\nIf you're getting the `BUILD_DOCKER_UNKNOWN` error code, this indicates a\nproblem with Docker. To resolve this issue, perform one or more of the following\ntasks:\n\n- Restart Docker and try building the container again.\n\n- If you're still getting the same error after restarting, Docker could be\n running out of disk space. To learn more about cleaning up unused objects in\n Docker, see [Prune unused Docker objects](https://docs.docker.com/config/pruning/#prune-unused-docker-objects).\n\n- Try Docker's [Disk Usage](https://hub.docker.com/extensions/docker/disk-usage-extension)\n extension to help reclaim space.\n\nConfiguration details\n---------------------\n\nCloud Code handles the following language-specific configuration\ndetails: \n\n### Node.js\n\nRewriting the entrypoint to invoke:\n\n`node --inspect=localhost:9229`\n\n### Python\n\nInstalling the `ptvsd` module using an Init Container and rewriting the\nentrypoint to invoke:\n\n`python -m ptvsd --host localhost --port 5678`\n\n### Go\n\nInstalling the\n[`dlv` debugger](https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv.md)\nusing an Init Container and rewriting the entrypoint such that the launched\ndebug session runs with a debug server only (in headless mode), continues the\ndebugged process on start, accepts multiple client connections, and listens at\n`localhost:56268`:\n\n`dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, \u003capp\u003e --`\n\n### Java\n\nAdding an environment `JAVA_TOOLS_OPTIONS` with the appropriate Java Debug\nWire Protocol (JDWP) configuration such that the JDWP debugging agent listens\nfor a socket connection on port 5005 and allows the VM to begin executing\nbefore the debugger is attached:\n\n`jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y`\n\n### .NET\n\n.NET Core applications are configured to be deployed along with `vsdbg` for VS\nCode.\n\nIf you encounter problems with the automatic configuration, see\n[Detailed debugger configuration and setup](https://skaffold.dev/docs/workflows/debug/#detailed-debugger-configuration-and-setup)\nfor help troubleshooting.\n\nGet Support\n-----------\n\nTo send feedback, report issues on [GitHub](https://github.com/GoogleCloudPlatform/cloud-code-vscode/issues), or ask a question on [Stack Overflow](https://stackoverflow.com/questions/ask?tags=cloud-code-vscode)."]]