Configura Stackdriver Debugger para Python

En esta página, se describe cómo configurar el entorno y la aplicación de Python para usar Stackdriver Debugger. Para algunos entornos, debes especificar de forma explícita el nivel de acceso a fin de permitir que el agente de Stackdriver Debugger envíe datos. Recomendamos configurar el nivel de acceso más amplio posible y, luego, usar Cloud Identity and Access Management 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.

Antes de comenzar

Para comenzar a usar Debugger, asegúrate de que la API de Debugger esté habilitada.
Habilita la API de Debugger

Entorno estándar de App Engine

Python 3.7

Si usas Python 3.7, debes habilitar los agentes de Debugger de forma manual mediante los pasos siguientes:

  1. Asegúrate de que tu archivo app.yaml contenga las líneas siguientes:

    runtime: python37
    
  2. Agrega las líneas siguientes lo antes posible en tu código de inicialización, como en la función principal, o en manage.py cuando usas el marco de trabajo web de Django (solo en versión 1.*).

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    except ImportError:
      pass
    
  3. Agregar google-python-cloud-debugger a requirements.txt.

  4. Para que en la página de Depuración de Cloud Console se muestre de forma automática el código fuente que coincide con la app implementada, ve a la sección sobre cómo seleccionar código fuente de forma automática.

Ahora puedes usar Debugger con tu app.

Entorno flexible de App Engine

Puedes usar Debugger con el entorno de ejecución de Python o el entorno de ejecución personalizado de App Engine.

  1. Asegúrate de que tus instancias de VM del entorno flexible de App Engine estén en ejecución:

    • Una imagen de Debian Linux de 64 bits
    • Python 3
  2. Asegúrate de que tu archivo app.yaml contenga las líneas siguientes:

    runtime: python
    env: flex
    

    Si usas un entorno de ejecución personalizado, usa runtime: custom.

  3. Agregar google-python-cloud-debugger a requirements.txt.

  4. Agrega las líneas siguientes lo antes posible en tu código de inicialización, como en la función principal, o en manage.py cuando usas el marco de trabajo web de Django (solo en versión 1.*).

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    except ImportError:
      pass
    
  5. Para que en la página de Depuración en Cloud Console se muestre de forma automática el código fuente que coincide con la app implementada, consulta la sección Selecciona el código fuente de forma automática.

Ahora puedes usar Debugger con tu app.

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 el paquete de Debugger a tu app:

    Si usas un archivo requirements.txt, agrega la línea siguiente:

    google-python-cloud-debugger
    

    Si usas un Dockerfile, agrega la línea siguiente:

    RUN pip install google-python-cloud-debugger
    
  3. Agrega las líneas siguientes lo antes posible en tu código de inicialización, como en la función principal o en manage.py cuando uses el marco de trabajo web de Django:

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    
    except ImportError:
      pass
    

En la página de Depuración, selecciona la ubicación del código fuente. Para que en la página de Depuración en Cloud Console se muestre de forma automática el código fuente que coincide con la app implementada, consulta la sección Selecciona el código fuente de forma automática.

Debugger ya está listo para usar.

CONSOLE

Para habilitar Debugger con la consola, completa los pasos siguientes:

  1. Después de seleccionar tu tipo de clúster, haz clic en Más opciones en el panel de Grupos de nodos:

    Campo de grupo de nodos que muestra un rectángulo rojo sobre el botón más opciones.

  2. Selecciona una de las opciones siguientes del panel de Seguridad:

    • Permite acceso total a todas las API de Cloud.

    • Permite el acceso a cada API y, luego, selecciona Habilitada para el Depurador de Cloud.

Compute Engine

  1. Asegúrate de que tus instancias de VM de Compute Engine estén en ejecución:

    • Una imagen de Debian Linux de 64 bits
    • Python 3
  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. Descarga el agente de Debugger.

    La manera sencilla de instalar el Debugger de Python es con [pip][pip]:

    pip install google-python-cloud-debugger
    
  4. Agrega las líneas siguientes lo antes posible en tu código de inicialización, como en la función principal, o en manage.py cuando uses el marco de trabajo web Django.

    try:
      import googleclouddebugger
      googleclouddebugger.enable(
        module='[MODULE]',
        version='[VERSION]'
      )
    except ImportError:
      pass
    

    Si no puedes cambiar el código, ejecuta el agente de Debugger como un módulo:

    python -m googleclouddebugger \
          --module=[MODULE] \
          --version=[VERSION] \
          -- \
          myapp.py
    

    En ambos casos, este muestra lo siguiente:

    • [MODULE] es el nombre de tu app.
      Esto, junto con la versión, se usa para identificar el destino de depuración en la página de Depuración de Cloud Console.
      Ejemplos: MyApp, Backend o Frontend.
    • [VERSION] es la versión de la app (por ejemplo, el ID de compilación).
      En la página de Depuración de Cloud Console, se muestra la versión en ejecución como [MODULE] - [VERSION].
      Valores de ejemplo: v1.0, build_147 o v20170714.

Ahora puedes usar Debugger con tu app.

Para que en la página de Depuración en Cloud Console se muestre de forma automática el código fuente que coincide con la app implementada, consulta la sección sobre cómo seleccionar el código fuente de forma automática.

Cloud Run y Cloud Run para Anthos en Google Cloud

  1. Paquete de Python.

    Si usas un archivo requirements.txt, agrega la línea siguiente:

    google-python-cloud-debugger
    

    Si no, agrega la línea siguiente a tu Dockerfile:

    RUN pip install google-python-cloud-debugger
    
  2. Agrega las líneas siguientes lo antes posible en tu código de inicialización, como en la función principal o en manage.py cuando uses el marco de trabajo web de Django:

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    
    except ImportError:
      pass
    

En la página de Depuración, selecciona la ubicación del código fuente. Para que en la página de Depuración en Cloud Console se muestre de forma automática el código fuente que coincide con la app implementada, consulta la sección Selecciona el código fuente de forma automática.

Debugger ya está listo para usar.

En el entorno local y en otros lugares

  1. Asegúrate de que tu estación de trabajo esté en ejecución:

    • Una imagen de Debian Linux de 64 bits
    • Python 3
  2. Descarga el agente de Debugger.

    La manera más sencilla de instalar el Debugger de Python es con [pip][pip]{: .external}:

    pip install google-python-cloud-debugger
    
  3. Descarga las credenciales de la cuenta de servicio.
    A fin de usar el agente de Stackdriver Debugger para Python en máquinas que no alojan Google Cloud, el agente debe usar las credenciales de la cuenta de servicio de Google Cloud para autenticarse con el servicio de Stackdriver Debugger.

    Usa la página Cuentas de servicio de Cloud Console a fin de crear un archivo de credenciales para una cuenta de servicio nueva o existente. La cuenta de servicio debe tener al menos la función Stackdriver Debugger Agent.

    Coloca el archivo JSON de la cuenta de servicio junto con el agente de Stackdriver Debugger para Python.

  4. Agrega las líneas siguientes lo antes posible en tu código de inicialización, como en la función principal, o en manage.py cuando usas el marco de trabajo web de Django.

    try:
      import googleclouddebugger
      googleclouddebugger.enable(
          module='[MODULE]',
          version='[VERSION]'
          service_account_json_file='/opt/cdbg/gcp-svc.json')
    except ImportError:
      pass
    

    Si no puedes cambiar el código, ejecuta el agente de Debugger como un módulo:

    python \
        -m googleclouddebugger \
        --module=[MODULE] \
        --version=[VERSION] \
        --service_account_json_file=/opt/cdbg/gcp-svc.json \
        -- \
        myapp.py
    

    En ambos casos, este muestra lo siguiente:

    • [MODULE] es el nombre de tu app.
      Esto, junto con la versión, se usa para identificar el destino de depuración en la página de Depuración de Cloud Console.
      Ejemplos: MyApp, Backend o Frontend.
    • [VERSION] es la versión de la app (por ejemplo, el ID de compilación).
      En la página de Depuración de Cloud Console, se muestra la versión en ejecución como [MODULE] - [VERSION].
      Valores de ejemplo: v1.0, build_147 o v20170714.
    • Se puede usar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS, en lugar de especificar service_account_json_file.

Ahora puedes usar Debugger con tu app.

En la página de Depuración en Cloud Console, se pueden mostrar los archivos de origen local, sin subir, para el desarrollo local. Consulta Selecciona el código fuente de forma manual.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Stackdriver Debugger