Cloud Code para Cloud Shell te permite depurar fácilmente una aplicación implementada en Cloud Run con 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+Po 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 avanzada de compilación y, luego, especifica el destino o los argumentos.
- (Opcional) Para especificar un nombre de servicio personalizado, una URL de imagen de contenedor, un puerto de contenedor, una identidad para que use el servicio, una cantidad de CPU dedicadas o una cantidad de memoria para asignar a cada instancia de contenedor, haz clic en Mostrar configuración avanzada del servicio y, luego, especifica los valores.
- (Opcional) Para especificar variables de entorno, haz clic en Mostrar configuración avanzada del servicio, luego en Variables de entorno y, luego, especifica los valores.
- (Opcional) Para especificar conexiones de Cloud SQL, haz clic en Conexiones y, luego, especifica una conexión por línea.
Si quieres personalizar aún más la manera en la que se ejecuta tu servicio, puedes editar tu archivo
launch.jsondirectamente.Para comenzar a depurar tu servicio, haz clic en Debug.
Por 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
ESCpara 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 se guarda automáticamente un cambio en tu aplicación, Cloud Code vuelve a implementarla y configura una nueva sesión de depuración. Puedes activar o desactivar esta función con la marca
watchen 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.
Cuando envíes una solicitud nueva a tu servicio, se pausará en la línea que especificaste.
Una vez que finalice 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.
Si quieres inspeccionar variables y la información de la pila, usa la barra lateral de depuración. 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 el error persiste después de reiniciar Docker, es posible que se esté quedando sin espacio en el disco. Para obtener más información sobre cómo limpiar objetos no utilizados en Docker, consulta Cómo eliminar objetos de Docker no utilizados.
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:
dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, <app> --
Java
Agrega un entorno JAVA_TOOLS_OPTIONS con la configuración adecuada del protocolo de cable Java Debug (JDWP) de modo que el agente de depuración de JDWP detecte una conexión de socket en el puerto 5005 y permita que la VM comience a ejecutarse antes de que se conecte el depurador:
jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y
.NET
Las aplicaciones de .NET Core están configuradas para implementarse junto con vsdbg para VS Code.
Si tienes problemas con la configuración automática, consulta Configuración y ajustes detallados del depurador para obtener ayuda en la solución de problemas.