Configurer Cloud Debugger pour .NET Core

Aperçu

Cette page explique comment configurer l'environnement et l'application .NET Core pour qu'ils utilisent Cloud Debugger. Pour certains environnements, vous devez spécifier explicitement le champ d'application d'accès pour permettre à l'agent Cloud Debugger d'envoyer des données. Nous vous recommandons de définir le niveau d'accès le plus large possible, puis d'utiliser Identity and Access Management pour limiter l'accès. Conformément à cette bonne pratique, définissez le niveau d'accès sur toutes les API Cloud avec l'option cloud-platform.

Versions de langages et environnements de calcul

Cloud Debugger est disponible pour .NET Core 1.0 et versions ultérieures dans les environnements de calcul suivants :

Environnement standard App Engine Environnement flexible App Engine Instance Google Kubernetes Engine Cloud Run Cloud Run pour Anthos sur Google Cloud VM et conteneurs s'exécutant ailleurs Cloud Functions

Configurer Cloud Debugger

Pour configurer Cloud Debugger, procédez comme suit :

  1. Vérifiez que l'API Cloud Debugger est activée pour votre projet.

  2. Installez et configurez le Debugger sur l'environnement de calcul que vous utilisez.

  3. Sélectionnez votre code source.

Vérifier que l'API Cloud Debugger est activée

Pour commencer à utiliser Cloud Debugger, assurez-vous que l'API Cloud Debugger est activée. Cloud Debugger est activé par défaut pour la plupart des projets.
Activer l'API Cloud Debugger

Environnement standard App Engine

L'agent Cloud Debugger pour .NET Core n'est pas disponible dans l'environnement App Engine.

Environnement flexible App Engine

  1. Dans le fichier app.yaml, remplacez runtime par custom :

    runtime: custom
    env: flex
    
  2. Utilisez un fichier Dockerfile personnalisé :

    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"]
    

    Où :

    • APPLICATION est le binaire que vous souhaitez exécuter et déboguer.

Cloud Debugger est maintenant prêt à être utilisé avec l'application.

Pour découvrir comment afficher automatiquement le code source correspondant à l'application déployée sur la page "Débogage" de Cloud Console, consultez la page Sélectionner automatiquement le code source.

Google Kubernetes Engine

GCLOUD

Pour activer Debugger à l'aide de gcloud, procédez comme suit :

  1. Créez votre cluster avec l'un des niveaux d'accès suivants :

    • https://www.googleapis.com/auth/cloud-platform permet à votre cluster d'accéder à toutes les API Google Cloud.

    • https://www.googleapis.com/auth/cloud_debugger ne permet à votre cluster d'accéder qu'à l'API Debugger. Utilisez ce niveau d'accès pour renforcer la sécurité de votre cluster.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Incluez les lignes suivantes dans le fichier Dockerfile pour ajouter l'agent Debugger à votre application en conteneur :

    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"]
    

    Où :

    • source-context.json correspond au fichier au format JSON qui contient la configuration du contexte source. Consultez la page Sélectionner automatiquement le code source pour en savoir plus sur la génération de ce fichier.

    • MODULE est le nom de l'application. Conjointement à la version, il permet d'identifier l'application dans Cloud Console. Exemples : MyApp, Backend ou Frontend.

    • VERSION est la version de l'application (l'ID de la version, par exemple). Cloud Console affiche l'application en cours d'exécution au format MODULE - VERSION. Exemples : v1.0, build_147 ou v20160520.

    • CREDENTIALS_FILE correspond au chemin du fichier JSON contenant les identifiants du compte de service.

    • APPLICATION correspond au point d'entrée de l'application .NET Core en cours d'exécution associée à Debugger.

Le débogueur est maintenant prêt à être utilisé lors du déploiement de votre application en conteneur.

Pour en savoir plus sur la création des clusters, consultez la page Créer un cluster.

CONSOLE

Pour activer Debugger à l'aide de la console, procédez comme suit :

  1. Après avoir sélectionné le type de cluster, cliquez sur More options (Plus d'options) dans le volet Node pools (Pools de nœuds) :

    Options des pools de nœuds

  2. Sélectionnez l'une des options suivantes dans le volet Sécurité :

    • Autoriser l'accès complet à l'ensemble des API Cloud

    • Définir l'accès pour chaque API, puis sélectionner Activé pour Cloud Debugger

Le débogueur est maintenant prêt à être utilisé avec l'application.

Pour découvrir comment afficher automatiquement le code source correspondant à l'application déployée sur la page "Débogage" de Cloud Console, consultez la page Sélectionner automatiquement le code source.

Instance

L'agent Cloud Debugger pour .NET Core n'est pas disponible dans l'environnement Compute Engine.

Local

Pour utiliser Cloud Debugger lors de l'exécution de l'application en local, procédez comme suit :

  • Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS pour qu'elle pointe vers le chemin complet du fichier JSON du compte de service.
  • Définissez la variable d'environnement STACKDRIVER_DEBUGGER_MODULE sur le nom du composant en cours de débogage. Ce nom de module apparaît dans la liste Cloud Console des modules pouvant être débogués.
  • Définissez la variable d'environnement STACKDRIVER_DEBUGGER_VERSION sur la version logique du module en cours de débogage. Cela permet de déboguer plusieurs versions logiques du module dans Cloud Console.
  • Définissez la variable d'environnement STACKDRIVER_DEBUGGER_DEBUGGER pour qu'elle pointe vers un emplacement du binaire Cloud Debugger.
  • Si vous utilisez Linux, définissez la variable d'environnement LD_LIBRARY_PATH afin d'inclure le répertoire Cloud Debugger.

Lors de la création de l'application .NET Core, incluez et déployez des fichiers PDB avec votre code. Saisissez les lignes suivantes dans chaque fichier PDB :

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

Notez que lors du débogage d'un build Release, des variables peuvent être mal nommées ou manquantes.