Configura Cloud Debugger para Go

Descripción general

En esta página se describe cómo configurar el entorno y la aplicación de PHP para usar Cloud Debugger. Para algunos entornos, debes especificar explícitamente el nivel de acceso a fin de permitir que el agente de Cloud Debugger envíe datos. Te recomendamos configurar el nivel de acceso más amplio posible y, luego, usar la Administración de identidades y accesos para restringir el acceso. De acuerdo con esta práctica recomendada, debes configurar el nivel de acceso para que estén todas las API de Cloud con la opción cloud-platform.

Versiones de lenguajes y entornos de procesamiento

Cloud Debugger está disponible para Go 1.9 y versiones anteriores en los siguientes entornos de procesamiento:

Entorno de App Engine Standard Entorno flexible de App Engine Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos VM y contenedores que se ejecutan en otros lugares Cloud Functions

Configura Cloud Debugger

Para configurar Cloud Debugger, completa las siguientes tareas:

  1. Verifica que la API del Depurador de Cloud esté habilitada para tu proyecto.

  2. Instala y configura Debugger en el entorno de procesamiento que usas.

  3. Selecciona tu código fuente.

Verifica que la API de Cloud Debugger esté habilitada

Para comenzar a usar Cloud Debugger, asegúrate de que esté habilitada la API de Cloud Debugger. Cloud Debugger está habilitado de forma predeterminada para la mayoría de los proyectos.
Habilita la API de Cloud Debugger

Google Kubernetes Engine

GCLOUD

Para habilitar Debugger con gcloud, completa los siguientes pasos:

  1. Crea tu clúster con uno de los niveles de acceso siguientes:

    • https://www.googleapis.com/auth/cloud-platform otorga a tu clúster acceso a todas las API de Google Cloud.

    • https://www.googleapis.com/auth/cloud_debugger otorga a tu clúster acceso solo a la API de Debugger. Usa este nivel de acceso para fortalecer la seguridad de tu clúster.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Agrega las líneas siguientes a tu Dockerfile para agregar el agente de Debugger a tu app en contenedores:

    RUN go get cloud.google.com/go/cmd/go-cloud-debug-agent \
        go-cloud-debug-agent -sourcecontext=[PATH_TO_FILE] -appmodule=[APP_NAME] \
        -appversion=[APP_VERSION] -- [PATH_TO_BINARY] [ARG1] [ARG2]
    

    Aquí:

    • PATH_TO_FILE especifica la ruta relativa al archivo con formato JSON que contiene la configuración de contexto de origen.

    • APP_NAME es el nombre de la aplicación o servicio. Esto, junto con la versión, se usa para identificar tu aplicación en Cloud Console.

    • APP_VERSION es un marcador de versión que suministra la aplicación. Por ejemplo, puedes usar un número de compilación. Cloud Console muestra la versión en ejecución como module - version. Por ejemplo, main - 1.0.

    • PATH_TO_BINARY especifica la ruta de acceso relativa al objeto binario de la aplicación.

    • ARG1 y ARG2 son marcadores de posición para cualquier argumento adicional que requiera tu aplicación.

Ahora puedes usar el depurador cuando implementes tu app en contenedores.

Para obtener información más detallada sobre cómo crear un clúster, consulta la sección correspondiente.

CONSOLE

Para habilitar Debugger con Google Cloud Console, completa los siguientes pasos:

  1. En la sección Grupos de nodos, selecciona Seguridad y, luego, Configurar acceso para cada API.

  2. Habilita Debugger.

    La API de Debugger está habilitada para el clúster.

  3. Opcional: Selecciona Permitir el acceso total a todas las API de Cloud.

Compute Engine

  1. Asegúrate de que tus instancias de VM de Compute Engine estén ejecutando una imagen de Debian Linux de 64 bits.

  2. Asegúrate de que tus instancias de VM de Compute Engine se creen con la opción de nivel de acceso Permitir acceso completo a todas las API de Cloud, o que tengan uno de los siguientes niveles de acceso:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. Las optimizaciones actuales del compilador de Go interfieren en la depuración precisa. Como resultado, Cloud Debugger muestra información incorrecta sobre la aplicación cuando está compilada con las optimizaciones predeterminadas del compilador de Go.

    Para obtener la información de depuración correcta, compila tu aplicación sin las optimizaciones predeterminadas. Con los siguientes comandos de muestra, se ilustra cómo inhabilitar las optimizaciones cuando se usa Go 1.10 o una versión posterior:

    go build -gcflags=all='-N -l'
    

    El valor gcflags anterior incluye -N a fin de inhabilitar las optimizaciones y -l para inhabilitar el intercalado.

  4. Descarga el agente de Debugger.

    El agente de Cloud Debugger es un objeto binario ligero que habilitas para tu aplicación en el inicio. El agente se inicia con tu aplicación y se comunica con el backend de Cloud Debugger mientras se ejecuta la aplicación.

    Una vez que compilaste e implementaste la aplicación de Compute Engine, descarga e instala el agente de depuración:

    go get cloud.google.com/go/cmd/go-cloud-debug-agent
    
  5. Inicia el agente y tu programa:

    go-cloud-debug-agent -sourcecontext=[PATH_TO_FILE] -appmodule=[APP_NAME] \
                     -appversion=[APP_VERSION] -- [PATH_TO_BINARY] [ARG1] [ARG2]
    

    Aquí:

    • PATH_TO_FILE especifica la ruta relativa al archivo con formato JSON que contiene la configuración de contexto de origen.

    • APP_NAME es el nombre de la aplicación o servicio. Esto, junto con la versión, se usa para identificar tu aplicación en Cloud Console.

    • APP_VERSION es un marcador de versión que suministra la aplicación. Por ejemplo, puedes usar un número de compilación. Cloud Console muestra la versión en ejecución como module - version. Por ejemplo, main - 1.0.

    • PATH_TO_BINARY especifica la ruta de acceso relativa al objeto binario de la aplicación.

    • ARG1 y ARG2 son marcadores de posición para cualquier argumento adicional que requiera tu aplicación.

    Por ejemplo:

    go-cloud-debug-agent -appmodule=main -appversion=1.0 -- bin/my-app my-arg
    

Ahora puedes usar Debugger con tu app.

En el entorno local y en otros lugares

El agente de Cloud Debugger para Go solo se admite en los entornos locales o de otro tipo que usan Go 1.9 y versiones anteriores.