Configura Cloud Debugger para .NET Core

Descripción general

En esta página, se describe cómo configurar el entorno y la aplicación de .NET Core 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

El Depurador de Cloud está disponible para .NET Core 1.0 a 2.1 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

Entorno estándar de App Engine

El agente del Depurador de Cloud para .NET Core no es compatible con el entorno estándar de App Engine.

Entorno flexible de App Engine

  1. Cambia el runtime en tu app.yaml a custom:

    runtime: custom
    env: flex
    
  2. Usa un Dockerfile personalizado:

    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    
    # If you don't have source context delete the below line.
    # See 'Selecting source code automatically' below for more information.
    COPY ./source-context.json /usr/share/dotnet-debugger/agent/
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    Aquí:

    • APPLICATION es el objeto binario que deseas ejecutar y depurar.

Google Cloud's operations suite ya está listo para usarse con tu aplicación.

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

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:

    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    # If you don't have the source-context.json file, delete the `COPY` line below.
    # See running locally below for more information.
    COPY ./source-context.json /usr/share/dotnet-debugger/agent/
    
    ENV STACKDRIVER_DEBUGGER_MODULE=MODULE
    ENV STACKDRIVER_DEBUGGER_VERSION=VERSION
    
    # If not running on Google Cloud, uncomment and set the following:
    # ENV GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_FILE
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    Aquí:

    • source-context.json es el archivo con formato JSON que contiene la configuración de contexto de origen. Consulta la sección sobre cómo seleccionar el código fuente de forma automática para obtener información sobre generar este archivo.

    • MODULE es el nombre de la aplicación. Junto con la versión, identifica la aplicación en Cloud Console. Ejemplos: MyApp, Backend o Frontend.

    • VERSION es la versión de la aplicación (p. ej., el ID de compilación). Cloud Console muestra la aplicación en ejecución como MODULE - VERSION. Ejemplos: v1.0, build_147 o v20160520.

    • CREDENTIALS_FILE es la ruta al archivo JSON de credenciales de la cuenta de servicio.

    • APPLICATION es el punto de entrada a la aplicación de .NET Core que se ejecuta con Debugger conectado.

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. Selecciona Permitir acceso completo a todas las API de Cloud (opcional).

Ahora puedes usar el depurador con tu aplicación.

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

Compute Engine

El agente del Depurador de Cloud para .NET Core no es compatible con el entorno de Compute Engine.

Local

Para usar Google Cloud's operations suite mientras ejecutas tu aplicación de forma local, haz lo siguiente:

  • Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS para que apunte a la ruta de archivo completa de la cuenta de servicio json.
  • Configura la variable de entorno STACKDRIVER_DEBUGGER_MODULE en el nombre del componente en depuración. El nombre de este módulo aparecerá en la lista de módulos de Cloud Console que se pueden depurar.
  • Configura la variable de entorno STACKDRIVER_DEBUGGER_VERSION en la versión lógica del módulo en depuración. Esto permite depurar varias versiones lógicas del módulo en Cloud Console.
  • Configura la variable de entorno STACKDRIVER_DEBUGGER_DEBUGGER para que apunte a una ubicación del objeto binario de Google Cloud's operations suite.
  • Si se ejecuta en Linux, configura la variable de entorno LD_LIBRARY_PATH para que incluya el directorio de Google Cloud's operations suite.

Cuando compilas la aplicación de .NET Core, incluye y, también, implementa archivos PDB con tu código. Incluye las líneas siguientes en cada archivo PDB:

    <PropertyGroup>
      <TargetFramework>netcoreapp2.1</TargetFramework>
      <DebugType>portable</DebugType>
    </PropertyGroup>

Ten en cuenta que cuando se depura una compilación Release, las variables pueden tener un nombre erróneo o no tenerlo.