Depura una aplicación que se ejecuta de forma local

Con Cloud Code, puedes depurar tus aplicaciones de Cloud Run de forma local en un entorno similar a Cloud Run. Puedes establecer interrupciones, revisar el código y depurar aplicaciones remotas que se ejecutan en contenedores.

Define tu configuración de depuración

Antes de depurar tu aplicación, debes crear la configuración de depuración:

  1. Navega al cuadro de diálogo Configuración de ejecución y depuración en la barra de tareas superior y haz clic en “Editar configuración”.
  2. Elige “Cloud Run: Run Locally” en Cloud Code: Cloud Run.
  3. Haz clic en OK (Aceptar).

Depura tu aplicación

Para depurar tu aplicación, sigue estos pasos:

  1. Haz clic en la acción de depuración Icono de acción de depuración para “Cloud Run: Run Locally” a fin de iniciar el ciclo de desarrollo en modo de depuración.

    Haz clic para ejecutar en Cloud Run: Run Locally en modo de depuración

  2. Cloud Code adjuntará una sesión de depuración. Una vez que se complete de forma correcta, se abrirá la ventana de la Herramienta de depuración para confirmar la conexión (dentro de la pestaña Console).

  3. Haz clic en el margen en la línea ejecutable del código en el que deseas agregar una interrupción.

    Los círculos rellenos de color rojo indican las interrupciones activas, mientras que los círculos vacíos con contornos rojos indican las interrupciones inhabilitadas.

  4. Para acceder a tu aplicación en ejecución, haz clic en la URL que se muestra en el panel de Registro de eventos (Event Log).

    Cuando lo hagas, se enviará una solicitud nueva a tu aplicación y se pausará en la línea marcada con puntos de interrupción.

    Registro de eventos con una notificación de implementación correcta y una URL para obtener una vista previa de tu app

  5. Para finalizar la sesión de depuración, haz clic en el ícono de detener en la configuración de ejecución de Cloud Run: Run Locally.

Detalles de configuración

Cloud Code, con tecnología de Skaffold, de forma interna, puede ayudarte a configurar tus sesiones de depuración. Con Cloud Code, puedes establecer interrupciones y depurar las aplicaciones remotas que se ejecutan en contenedores para los siguientes lenguajes:

Java

Cloud Code agregará de forma automática una variable de entorno, JAVA_TOOL_OPTIONS, con la configuración JDWP adecuada para habilitar la depuración. Si ya existe, Cloud Code usará la configuración existente especificada en JAVA_TOOL_OPTIONS.

Node.js

Según la estructura de la aplicación y la configuración de compilación de tu imagen, es posible que debas ayudar al depurador a asignar tus fuentes locales a las fuentes remotas del contenedor. Esto permite que el depurador de nodos procese tus interrupciones de forma correcta.

Hay dos maneras de configurarlo:

  1. Configuración manual

    Selecciona la configuración para ejecutar “Cloud Run: Run Locally” en el menú desplegable y selecciona “Edit Configurations”. En la pestaña “Depurar”, configura el mapeo de origen de la fuente de la aplicación local a la ubicación de origen en el contenedor remoto.

    Elige una ubicación de origen en la sección de asignación de origen de la pestaña de Depuración

    Opciones de configuración:

    • File/Directory: es el archivo local o directorio de la aplicación que se ejecuta en Cloud Run.
    • Remote Path: es la ruta de acceso al archivo o directorio que se ejecuta en el contenedor en Cloud Run.
  2. Configuración automática

    Puedes optar por diferir este mapeo a Cloud Code. Cuando inicies tu sesión de depuración, Cloud Code intentará inferir este mapeo de forma automática. Aparecerá en un cuadro de diálogo. Un diálogo para cada artefacto que depures.

    Diálogo de mapeo de la ruta de acceso remoto para cada artefacto que especifica la ruta remota que se usará

    Opciones de configuración:

    • Local path: es la ruta de acceso local a la raíz del artefacto que se depura.
    • Remote Path: es la ruta de acceso al archivo o directorio que se ejecuta en el contenedor en Cloud Run. Puedes anular esto con tu propio valor. Si presionas Cancel, no se aplicará ningún mapeo.

Go

A fin de configurar tu aplicación para la depuración, tu app debe ser de la siguiente manera:

  • Una aplicación basada en el módulo de Go
  • Identificado como la base de Go mediante la configuración de una de las variables de entorno de ejecución de Go estándar en el contenedor, como GODEBUG, GOGC, GOMAXPROCS. o GOTRACEBACK. GOTRACEBACK=single es la configuración predeterminada para Go y GOTRACEBACK=all es, por lo general, una configuración útil.

De forma opcional (pero recomendada), tu aplicación debe compilarse con las opciones -gcflags='all=-N -l' para inhabilitar las optimizaciones. Los perfiles de Skaffold son una opción útil para este fin y se pueden configurar con el campo “Deployment Profile” en la configuración de Run, en la pestaña “Build/Deploy”.

Consulta la documentación de depuración de Skaffold para obtener más detalles.

Obtén asistencia

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