Cómo depurar un servicio de Cloud Run en Cloud Code para VS Code
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Cloud Code para VS Code te permite depurar fácilmente una aplicación implementada en
Cloud Run si aprovechas
skaffold debug. Para obtener información detallada sobre la depuración de Skaffold, consulta Cómo depurar con Skaffold.
No es necesario que completes la configuración manual, como la redirección de puertos o la incorporación de argumentos de depuración específicos del lenguaje. La depuración requiere una aplicación de Cloud Run lista para usar con Cloud Code que incluya un archivo de configuración skaffold.yaml y un archivo launch.json de tipo cloudcode.cloudrun.
Depura tu servicio de Cloud Run
Para depurar tu servicio, sigue estos pasos:
Para ejecutar el servicio y adjuntar una sesión del depurador, abre la paleta de comandos (presiona Ctrl/Cmd+Shift+P o haz clic en Ver > Paleta de comandos) y, luego, ejecuta el comando Depurar en un emulador de Cloud Run.
En el cuadro de diálogo Ejecutar/Depurar en un emulador de Cloud Run, establece las especificaciones para tu configuración:
Elige Docker o Buildpacks como tu compilador y, luego, especifica tu
Dockerfile o Buildpack.
Opcional: Para especificar un destino de Dockerfile o argumentos de compilación, haz clic en Mostrar configuración de compilación avanzada y, luego, especifica el destino o los argumentos.
Opcional: Para especificar un nombre de servicio personalizado, la URL de la imagen del contenedor, el puerto del contenedor, la identidad que usará el servicio, la cantidad de CPUs dedicadas o la cantidad de memoria que se asignará a cada instancia de contenedor, haz clic en Mostrar configuración avanzada del servicio y, luego, especifica los valores.
Para especificar cualquier
variable de entorno,
haz clic en Mostrar configuración avanzada del servicio, haz clic en Variables de entorno
y, luego, especifica los valores (opcional).
Para especificar conexiones de Cloud SQL, haz clic en Conexiones (opcional) y, luego, especifica una conexión por línea.
(Opcional) Para que VS Code restablezca una sesión de depuración después de guardar un cambio en el código, marca la casilla de verificación Automáticamente volver a compilar y ejecutar los cambios.
Si quieres personalizar aún más la forma en que se ejecuta tu servicio, puedes editar directamente el archivo launch.json.
Para comenzar a depurar tu servicio, haz clic en Depurar.
Para cada contenedor depurable en tu servicio, confirma o ingresa el directorio en el contenedor remoto donde se encuentra el programa que deseas depurar.
Como alternativa, puedes presionar ESC para omitir la depuración de un contenedor.
Cloud Code adjunta una sesión de depuración para cada contenedor depurable en el servicio.
De forma predeterminada, cuando guardas un cambio en tu aplicación,
Cloud Code vuelve a implementarla y configura una nueva sesión de debugging. Puedes activar o desactivar esta función con la marca watch en la configuración de lanzamiento de tu proyecto.
Para agregar un punto de interrupción, haz clic en el margen del editor del archivo que estás depurando.
Los círculos rellenos de color rojo indican las interrupciones activas y los círculos vacíos de color gris indican los puntos de interrupción inhabilitados.
Para un control de interrupciones más preciso, puedes usar la sección de interrupciones en la vista de depuración de VS Code.
Cada vez que envíes una solicitud nueva a tu servicio, se detendrá en la línea que especificaste.
Cuando se complete la sesión, haz clic con el botón derecho para usar los siguientes comandos:
Ver registros: Abre los registros de la aplicación de una implementación específica con el explorador de registros de Cloud Code.
Abrir URL: Abre la URL del servicio de la aplicación de un servicio específico en un navegador web.
Si desactivaste el modo de observación en la configuración de lanzamiento y deseas realizar cambios en la aplicación y volver a compilar y a implementar la aplicación, haz clic en la barra de estado de Cloud Code y, luego, en Activar el modo de observación.
Usa la barra lateral de depuración para inspeccionar las variables y la información de la pila.
Usa la consola de depuración ubicada en el depurador del panel inferior si deseas interactuar con la sesión de depuración.
Para detener la implementación, haz clic en el botón Detener en la barra de acciones de la implementación actual.
Soluciona problemas de compilación de contenedores
Si recibes el código de error BUILD_DOCKER_UNKNOWN, esto indica que hay un
problema con Docker. Para resolver este problema, realiza una o más de las siguientes tareas:
Reinicia Docker y vuelve a intentar compilar el contenedor.
Si sigues recibiendo el mismo error después del reinicio, es posible que Docker se esté quedando sin espacio en el disco. Para obtener más información sobre cómo limpiar objetos que no se usan en
Docker, consulta Cómo eliminar objetos de Docker que no se usan.
Prueba la extensión Disk Usage de Docker para recuperar espacio.
Detalles de configuración
Cloud Code controla los siguientes detalles de configuración específicos del lenguaje:
Node.js
Reescribe el punto de entrada que se invocará:
node --inspect=localhost:9229
Python
Instala el módulo ptvsd mediante un contenedor de inicialización y reescribe el punto de entrada que se invocará:
python -m ptvsd --host localhost --port 5678
Go
Instala el depurador dlv mediante un contenedor Init y reescribe el punto de entrada de modo que la sesión de depuración iniciada se ejecute solo con un servidor de depuración (en modo sin interfaz gráfica) continúa el proceso de depuración en el inicio, acepta varias conexiones de clientes y escucha en localhost:56268:
Agrega un entorno JAVA_TOOLS_OPTIONS con la configuración adecuada del protocolo de depuración de Java (JDWP) para que el agente de depuración de JDWP escuche una conexión de socket en el puerto 5005 y permita que la VM comience a ejecutarse antes de que se conecte el depurador:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)."]]