Depura una aplicación

Cloud Code para IntelliJ te permite depurar con facilidad las aplicaciones implementadas 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 insertar argumentos de depuración específicos del lenguaje de la manera correcta. , Todo lo que necesitas es una aplicación de Kubernetes lista para Cloud Code que incluya un archivo de configuración skaffold.yaml.

IDE compatibles

Para IDE, ediciones y complementos compatibles, consulta la siguiente tabla:

Idioma IDE Edición Complemento requerido
Java IntelliJ IDEA Comunidad o Ultimate N/A
Comienza a usarlo IntelliJ IDEA Acceso total Complemento de Go
GoLand N/A N/A
Node.js IntelliJ IDEA Acceso total Complemento Node.js
WebStorm N/A N/A
Python IntelliJ IDEA Acceso total Complemento de Python
PyCharm Professional N/A

Con Cloud Code, puedes establecer interrupciones y depurar aplicaciones remotas que se ejecutan en contenedores para los siguientes lenguajes:

Java

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

Node.js

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

Puedes configurar esto de una de las siguientes maneras:

  • Configuración manual

    Selecciona la opción Develop on Kubernetes Run Configuration del menú desplegable y, luego, haz clic en Edit Configurations. En la pestaña Depurar, configura la asignación de origen desde la fuente de la aplicación local hasta 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: Es 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.
  • Configuración automática

    Puedes optar por diferir este mapeo a Cloud Code. Cuando inicias tu sesión de depuración, Cloud Code intenta deducir la asignación de forma automática. La asignación inferida se presenta en un diálogo. un diálogo por 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 haces clic en Cancelar, no se aplicará ninguna asignación.

Comienza a usarlo

A fin de configurar la aplicación para la depuración, debe ser una aplicación basada en el módulo de Go y se debe identificar como basada en Go mediante la configuración de uno de los estándares Variables de entorno de ejecución de Go en el contenedor, como GODEBUG, GOGC, GOMAXPROCS o GOTRACEBACK. GOTRACEBACK=single es la configuración predeterminada para Go y GOTRACEBACK=all es una configuración útil en general.

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 útiles para este fin y se pueden configurar con el campo Perfil de implementación de la configuración de ejecución en Pestaña Build/Deploy.

Python

A fin de configurar la aplicación para la depuración, asegúrate de cumplir con los siguientes requisitos:

  • El IDE, la edición y el complemento son compatibles

    Para IDE, ediciones y complementos compatibles, consulta IDE compatibles.

  • Skaffold es la versión 1.25.0 o superior

    Puedes permitir que Cloud Code administre tus dependencias o apunte a una instalación de Skaffold local. Consulta Preferencias > Herramientas > Cloud Code > Dependencias.

  • Se configuró el intérprete de Python

    Sin un intérprete de Python configurado en tu proyecto, la depuración no funcionará, ya que no hay manera de ejecutar pydevd, el depurador de Python subyacente.

    IDE Cómo configurar
    IntelliJ IDEA La depuración de Python con Cloud Code requiere que se configure un SDK de Python para tu proyecto.

    Ve a File > Project Structure y agrega un SDK de Python en la pestaña Project. Si no existe ninguno, agrega uno en la pestaña SDK.
    PyCharm Ve a File > Settings > Project > Python Interpreter o, en el caso de macOS X, selecciona PyCharm > Preferences > Project > Python Interpreter y agrega un intérprete de Python. ,

Para obtener más detalles, consulta la documentación de depuración de Skaffold.

Depuración

  1. Para iniciar el ciclo de desarrollo en modo de depuración en el clúster de Kubernetes, haz clic en la acción de depuración para Desarrollar en Kubernetes (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 inicia en modo de depuración.

    Cloud Code adjunta una sesión de depuración:

    Conexión del depurador de Kubernetes

  2. Ahora puedes realizar las tareas que sueles hacer cuando depuras código local, como establecer interrupciones y revisar el código paso a paso, en un clúster de Kubernetes en vivo.

    Sesión del depurador de Kubernetes

  3. Para finalizar la sesión de depuración, haz clic en el ícono de detener en la configuración de ejecución Develop on Kubernetes (Desarrollar en Kubernetes).

Obtén asistencia

Para enviar comentarios o informar un problema en tu IDE de IntelliJ, ve a Tools > Cloud Code > Help / About > . Envía comentarios o informa un problema para informar un error en GitHub o hacer una pregunta en Stack Overflow.

También puedes unirte al canal #cloud-code, que forma parte de la comunidad de Slack de Google Cloud.