Cloud Code para VS Code te permite depurar fácilmente una aplicación implementada en
Cloud Run aprovechando
skaffold debug
Para obtener información
más detallada sobre depuración de Skaffold, consulta
Depura con Skaffold.
No es necesario completar la configuración manual, como la redirección de puertos
Insertar argumentos de depuración específicos del lenguaje. La depuración requiere un
Aplicación de Cloud Run lista para Cloud Code
que incluye un archivo de configuración skaffold.yaml
y un archivo launch.json
de
escribe cloudcode.cloudrun
.
Depura tu servicio de Cloud Run
Para depurar tu servicio, sigue estos pasos:
Para ejecutar tu servicio y adjuntarle una sesión de depurador, abre la Paleta de comandos (presiona
Ctrl
/Cmd
+Shift
+P
o haz clic en Ver > Paleta de comandos) y, luego, ejecuta el comando Debug on Cloud Run Emulator.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 compilador y, luego, especifica Dockerfile o Buildpack.
- (Opcional) Para especificar un destino de Dockerfile o argumentos de compilación, haz clic en Show Advanced Build Settings y especifica el destino o argumentos.
- (Opcional) Para especificar un nombre de servicio personalizado, URL de la imagen del contenedor puerto de contenedor, identidad para el servicio, cantidad de CPU dedicadas o la cantidad de memoria para asignar a cada instancia de contenedor, haz clic Mostrar la configuración avanzada de servicio y, luego, especificar los valores.
- (Opcional) Especificar cualquier variables de entorno Haz clic en Show Advanced Service Settings, en Environment Variables y y especifica los valores.
- (Opcional) Para especificar las conexiones de Cloud SQL, haz clic en Conexiones. y especifica una conexión por línea.
- (Opcional) Para que VS Code restablezca una sesión de depuración después de guardar una en el código, revisa el Casilla de verificación Volver a compilar y ejecutar de manera automática los cambios.
Si quieres personalizar aún más la ejecución de tu servicio, puedes editar tu archivo
launch.json
directamente.Para comenzar a depurar tu servicio, haz clic en Debug.
Si se te solicita, autentica tus credenciales para ejecutar y depurar una aplicación de forma local.
Por cada contenedor depurable de tu servicio, confirma o ingresa al directorio en el contenedor remoto en el que se encuentra el programa que quieres depurar.
También puedes presionar
ESC
para omitir la depuración de un contenedor.Cloud Code adjunta una sesión de depuración para cada depuración contenedor en el servicio.
De forma predeterminada, cuando guardas un cambio en tu aplicación, Cloud Code vuelve a implementar tu aplicación y configura una nueva depuración sesión. Puedes activar o desactivar esta función con la marca
watch
en el bucket iniciar la configuración.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.
Cuando envías una solicitud nueva a tu servicio, se detiene en la línea especificada.
Cuando 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 un con el Explorador de registros de Cloud Code
- Open URL: Abre la URL de servicio de la aplicación de una dirección. servicio en un navegador web
Si desactivaste el modo de supervisión en la configuración de inicio y quieres realizar cambios en tu aplicación y volver a compilarla e implementarla, haz clic en la barra de estado de Cloud Code y, luego, en Activa el modo de reloj.
Si quieres inspeccionar variables y la información de la pila, usa el 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
, significa que hay un
problema con Docker. Para resolver este problema, realiza una o más de las siguientes acciones
tareas:
Reinicia Docker y, luego, intenta compilar el contenedor nuevamente.
Si sigues recibiendo el mismo error después de reiniciar, es posible que Docker se queda sin espacio en el disco. Obtén más información para limpiar objetos sin usar en Docker, consulta Reduce objetos de Docker sin usar.
Prueba el uso de discos de Docker para ayudar a recuperar espacio.
Detalles de configuración
Cloud Code controla la siguiente configuración específica de lenguaje detalles:
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 depuración de Java adecuada
configuración del protocolo Wire (JDWP), de modo que el agente de depuración de JDWP escuche
para una conexión de socket en el puerto 5005 y permite que la VM comience a ejecutarse
antes de adjuntar el depurador:
jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y
.NET
Las aplicaciones .NET Core están configuradas para implementarse junto con vsdbg
para VS
Código.
Si tienes problemas con la configuración automática, consulta Configuración detallada del depurador para obtener ayuda con la solución de problemas.