Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Depura una aplicación

Cloud Code para IntelliJ te permite depurar fácilmente las aplicaciones que implementaste en un clúster de Kubernetes. Puedes depurar una aplicación en un clúster local (como Minikube o Docker Desktop), GKE o cualquier otro proveedor de servicios en la nube.

Además, con la asistencia de depuración de Cloud Code, no tienes que preocuparte por ninguna configuración manual, como configurar la redirección de puertos, instalar un backend de depuración o incorporar argumentos de depuración específicos del lenguaje de la manera correcta. para crear el adjunto de VLAN de supervisión. Solo debes tener una aplicación de Kubernetes lista para usar con Cloud Code que incluya un archivo de configuración skaffold.yaml.

Depuración

Para comenzar el ciclo de desarrollo en modo de depuración en el clúster de Kubernetes, haz clic en la acción de depuración de Develop on Kubernetes ícono de acción de ejecutar.

Iniciar el ciclo de desarrollo del clúster de Kubernetes en modo de depuración

El ciclo de desarrollo continuo se iniciará en el modo de depuración.

Cuando se pueda adjuntar el depurador, Cloud Code adjuntará una sesión de depuración:

Conexión del depurador de Kubernetes

Ahora puedes realizar todas las tareas que haces normalmente cuando depuras código local, como establecer interrupciones y revisar el código paso a paso, pero con la ventaja adicional de poder depurar con un clúster activo de Kubernetes:

Sesión del depurador de Kubernetes

Cuando quieras terminar la sesión de depuración, haz clic en el ícono de detener en la configuración de ejecución Develop on Kubernetes.

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 de ejecución “Desarrollar en Kubernetes” del menú desplegable y selecciona “Editar configuraciones”. 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:

    • Archivo/Directorio: el archivo o directorio local de tu aplicación que se ejecuta en Kubernetes.
    • Ruta de acceso remota: La ruta de acceso al archivo o directorio que se ejecuta en el contenedor en Kubernetes.
  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.
    • Ruta de acceso remota: La ruta de acceso al archivo o directorio que se ejecuta en el contenedor en Kubernetes. 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.