Cloud Code para VS Code te permite depurar fácilmente una aplicación desplegada en Cloud Run aprovechando skaffold debug
. Para obtener información detallada sobre la depuración de Skaffold, consulta el artículo Depuración con Skaffold.
No es necesario que completes la configuración manual, como configurar el reenvío de puertos o insertar argumentos de depuración específicos de un idioma. Para depurar, necesitas una aplicación de Cloud Run preparada para Cloud Code que incluya un archivo de configuración skaffold.yaml
y un archivo launch.json
de tipo cloudcode.cloudrun
.
Depurar un servicio de Cloud Run
Para depurar tu servicio, sigue estos pasos:
Para ejecutar tu servicio y adjuntarle una sesión de depuración, abre la paleta de comandos (pulsa
Ctrl
/Cmd
+Shift
+P
o haz clic en Ver > Paleta de comandos) y, a continuación, ejecuta el comando Depurar en el emulador de Cloud Run.En el cuadro de diálogo Ejecutar/Depurar en el emulador de Cloud Run, define las especificaciones de tu configuración:
- Elige Docker o Buildpacks como compilador y, a continuación, 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, a continuación, 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 que deba usar el servicio, el número de CPUs dedicadas o la cantidad de memoria que se debe asignar a cada instancia de contenedor, haz clic en Mostrar configuración avanzada del servicio y, a continuación, especifica los valores.
- (Opcional) Para especificar variables de entorno, haz clic en Mostrar configuración avanzada del servicio, en Variables de entorno y, a continuación, especifica los valores.
- (Opcional) Para especificar conexiones de Cloud SQL, haga clic en Conexiones y, a continuación, especifique una conexión por línea.
- (Opcional) Para que VS Code vuelva a establecer una sesión de depuración después de guardar un cambio en el código, marca la casilla Automatically re-build and re-run on changes (Volver a compilar y ejecutar automáticamente cuando se produzcan cambios).
Si quieres personalizar aún más el funcionamiento de tu servicio, puedes editar directamente tu archivo
launch.json
.Para empezar a depurar tu servicio, haz clic en Depurar.
Si se te pide, autentica tus credenciales para ejecutar y depurar una aplicación de forma local.
En cada contenedor depurable de tu servicio, confirma o introduce el directorio del contenedor remoto en el que se encuentra el programa que quieres depurar.
También puedes pulsar
ESC
para saltarte la depuración de un contenedor.Cloud Code adjunta una sesión de depuración a cada contenedor depurable del servicio.
De forma predeterminada, cuando guardas un cambio en tu aplicación, Cloud Code vuelve a implementar la aplicación y configura una nueva sesión de depuración. Puedes activar o desactivar esta función con la marca
watch
en la configuración de lanzamiento de tu proyecto.Para añadir un punto de interrupción, haz clic en el margen del editor del archivo que estés depurando.
Los círculos rojos rellenos indican puntos de interrupción activos y los círculos grises huecos indican puntos de interrupción inhabilitados.
Para controlar los puntos de interrupción con mayor precisión, puedes usar la sección Puntos de interrupción de la vista Depuración de VS Code.
Cuando envías una nueva solicitud a tu servicio, se detiene en la línea que has especificado.
Cuando termine la sesión, haz clic con el botón derecho para usar los siguientes comandos:
- Ver registros: abre los registros de aplicaciones de una implementación específica con el Explorador de registros de Cloud Code.
- Abrir URL: abre la URL del servicio de aplicación de un servicio específico en un navegador web.
Si has desactivado el modo de monitorización en la configuración de inicio y quieres hacer cambios en tu aplicación, así como volver a compilarla y desplegarla, haz clic en la barra de estado de Cloud Code y, a continuación, en Activar modo de monitorización.
Si quieres inspeccionar variables e información de la pila, usa la barra lateral de depuración. Para interactuar con la sesión de depuración, usa la consola de depuración en el panel inferior del depurador.
Para detener la implementación, haz clic en el botón Detener de la barra de acciones de la implementación actual.
Solucionar problemas de compilación de contenedores
Si aparece el código de error BUILD_DOCKER_UNKNOWN
, significa que hay un problema con Docker. Para solucionar este problema, realice una o varias de las siguientes tareas:
Reinicia Docker y vuelve a intentar compilar el contenedor.
Si sigue apareciendo el mismo error después de reiniciar, es posible que Docker se esté quedando sin espacio en disco. Para obtener más información sobre cómo limpiar objetos no utilizados en Docker, consulta Eliminar objetos de Docker no utilizados.
Prueba la extensión Uso del disco de Docker para recuperar espacio.
Detalles de la configuración
Cloud Code gestiona los siguientes detalles de configuración específicos de cada lenguaje:
Node.js
Reescribir el punto de entrada para invocar:
node --inspect=localhost:9229
Python
Instalar el módulo ptvsd
mediante un Init Container y reescribir el punto de entrada para invocar:
python -m ptvsd --host localhost --port 5678
Go
Instalar el depurador dlv
mediante un contenedor Init y reescribir el punto de entrada de forma que la sesión de depuración iniciada se ejecute solo con un servidor de depuración (en modo sin interfaz gráfica), continúe el proceso depurado al iniciarse, acepte varias conexiones de cliente y escuche en localhost:56268
:
dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, <app> --
Java
Añade un entorno JAVA_TOOLS_OPTIONS
con la configuración adecuada del protocolo Java Debug Wire Protocol (JDWP) para que el agente de depuración de JDWP espere una conexión de socket en el puerto 5005 y permita que la máquina virtual empiece a ejecutarse antes de que se conecte el depurador:
jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y
.NET
Las aplicaciones .NET Core se configuran para que se implementen junto con vsdbg
para VS Code.
Si tienes problemas con la configuración automática, consulta la sección Configuración y configuración detalladas del depurador para obtener ayuda.