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
Cloud Debugger 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:
Verifica que la API del Depurador de Cloud esté habilitada para tu proyecto.
Instala y configura Debugger en el entorno de procesamiento que usas.
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 de App Engine Standard
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
Cambia el
runtime
en tu app.yaml acustom
:runtime: custom env: flex
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 Google Cloud Console muestre automáticamente el código fuente que coincide con la aplicación implementada, consulta Selecciona el código fuente de forma automática.
Google Kubernetes Engine
GCLOUD
Para habilitar Debugger con gcloud
, completa los siguientes pasos:
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
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 Google Cloud Console. Ejemplos:MyApp
,Backend
oFrontend
.VERSION
es la versión de la aplicación (p. ej., el ID de compilación). Google Cloud Console muestra la aplicación en ejecución comoMODULE - VERSION
. Ejemplos:v1.0
,build_147
ov20160520
.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 mediante Google Cloud Console, completa los siguientes pasos:
En la sección Grupos de nodos, selecciona Seguridad y, luego, Configurar acceso para cada API.
Habilita Debugger.
Opcional: Selecciona Permitir el acceso total a todas las API de Cloud.
Ahora puedes usar el depurador con tu aplicación.
Para que la página de Depuración en Google Cloud Console muestre automáticamente el código fuente que coincide con la aplicación implementada, consulta Selecciona 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. Este nombre de módulo aparecerá en la lista de módulos de Google 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 Google 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.