Depura un servicio de Cloud Run en Cloud Code para VS Code

Cloud Code para VS Code te permite depurar con facilidad una aplicación implementada en Cloud Run mediante skaffold debug. Para obtener información detallada sobre la depuración de Skaffold, consulta Cómo realizar depuraciones con Skaffold.

No necesitas completar la configuración manual, como la redirección de puertos o la inserción de argumentos de depuración específicos de un idioma. La depuración requiere una aplicación de Cloud Run lista para 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:

  1. 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 View > Command Palette) y, luego, ejecuta el comando Debug on Cloud Run Emulator.

  2. 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 tu Dockerfile o Buildpack.
    • Para especificar un objetivo de Dockerfile o argumentos de compilación, haz clic en Show Advanced Build Settings y, luego, especifica el destino o los argumentos (opcional).
    • Si quieres especificar un nombre de servicio personalizado, una URL de imagen de contenedor, un puerto de contenedor, la identidad que usará el servicio, la cantidad de CPU dedicadas o la 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 cualquier variable de entorno, haz clic en Show Advanced Service Settings, Show Advanced Service Settings 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 (opcional).
    • (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 Automatically re-build and re-run on changes (Volver a compilar y ejecutar automáticamente cuando se realicen cambios).

    Si deseas personalizar aún más la forma en que se ejecuta tu servicio, puedes editar el archivo launch.json directamente.

  3. Para comenzar a depurar tu servicio, haz clic en Debug.

  4. Si se te solicita, autentica tus credenciales para ejecutar y depurar una aplicación de manera local.

  5. Para cada contenedor depurable de 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.

    Solicitud raíz remoto

    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 la vuelve a implementar 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 inicio de tu proyecto.

  6. 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.

    Sección de interrupciones en el panel izquierdo de la vista de depuración que permite agregar, quitar y, también, inhabilitar interrupciones

    Cuando envías una solicitud nueva al servicio, se detiene en la línea que especificaste.

  7. Una vez finalizada la sesión, haz clic con el botón derecho para usar los siguientes comandos:

    • View Logs (Ver registros): Abre los registros de una aplicación específica de una implementación específica con el Explorador de registros de Cloud Code.
    • Open URL: Abre la URL del servicio de aplicación de un servicio específico en un navegador web.
  8. Si desactivaste el modo de supervisión en la configuración de inicio y quieres realizar cambios en la aplicación, volver a compilarla y, luego, implementarla, haz clic en la barra de estado de Cloud Code y, luego, en Activar el modo de supervisión.

  9. Si quieres inspeccionar las variables y la información de 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.

  10. Para detener tu implementación, haz clic en el botón Stop en la barra de acciones de la implementación actual.

    Barra de acciones para la implementación de Cloud Run

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 Java Debug Wire (JDWP), de modo 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 conectar el depurador:

jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y

.NET

Las aplicaciones de .NET Core están configuradas a fin de 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 con la solución de problemas.

Obtener asistencia

Si deseas enviar comentarios, informa problemas en GitHub o haz preguntas en Stack Overflow.