Configurer Cloud Debugger pour Go

Présentation

Cette page explique comment configurer l'environnement et l'application Go 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 Go 1.9 et les versions antérieures dans les environnements de calcul suivants :

Environnement standard App Engine Environnement flexible App Engine Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos 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

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 :

    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]
    

    Où :

    • PATH_TO_FILE spécifie le chemin d'accès relatif au fichier au format JSON qui contient la configuration du contexte source.

    • APP_NAME est le nom de votre application ou service. Conjointement à la version, le nom permet d'identifier votre application dans Google Cloud Console.

    • APP_VERSION est un marqueur de version fourni par l'application. Vous pouvez par exemple utiliser un numéro de version. Google Cloud Console affiche la version en cours d'exécution au format module - version. Par exemple, main - 1.0.

    • PATH_TO_BINARY spécifie le chemin relatif au binaire d'application.

    • ARG1 et ARG2 sont des espaces réservés pour tous les arguments supplémentaires requis par l'application.

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 Google Cloud Console, procédez comme suit:

  1. Dans la section Pools de nœuds, sélectionnez Sécurité, puis cliquez sur Définir l'accès pour chaque API.

  2. Activez Debugger.

    L'API Debugger est activée pour le cluster.

  3. Facultatif : Sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud.

Compute Engine

  1. Assurez-vous que les instances de VM Compute Engine exécutent une image Debian Linux 64 bits.

  2. Assurez-vous que l'option de champ d'application d'accès Autoriser l'accès complet à l'ensemble des API Cloud est activée pour les instances de VM Compute Engine, ou que ces dernières disposent de l'un des champs d'application d'accès suivants :

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. Les optimisations actuelles du compilateur Go vous empêchent d'obtenir un débogage précis. Cloud Debugger affiche donc des informations incorrectes sur l'application lorsque celle-ci est créée avec les optimisations par défaut du compilateur Go.

    Pour obtenir les bonnes informations de débogage, créez l'application sans inclure les optimisations par défaut. Les exemples de commandes suivants montrent comment désactiver les optimisations lors de l'utilisation de go1.10 ou d'une version ultérieure :

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

    La valeur gcflags qui précède inclut -N afin de désactiver les optimisations et -l pour désactiver l'intégration.

  4. Téléchargez l'agent de débogage.

    L'agent Cloud Debugger est un agent binaire léger que vous activez pour l'application au lancement. Il démarre avec celle-ci et communique avec le backend de Cloud Debugger pendant que l'application est en cours d'exécution.

    Une fois l'application Compute Engine créée et déployée, téléchargez et installez l'agent de débogage :

    go get cloud.google.com/go/cmd/go-cloud-debug-agent
    
  5. Démarrez l'agent et le programme :

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

    Où :

    • PATH_TO_FILE spécifie le chemin d'accès relatif au fichier au format JSON qui contient la configuration du contexte source.

    • APP_NAME est le nom de votre application ou service. Conjointement à la version, le nom permet d'identifier votre application dans Google Cloud Console.

    • APP_VERSION est un marqueur de version fourni par l'application. Vous pouvez par exemple utiliser un numéro de version. Google Cloud Console affiche la version en cours d'exécution au format module - version. Par exemple, main - 1.0.

    • PATH_TO_BINARY spécifie le chemin relatif au binaire d'application.

    • ARG1 et ARG2 sont des espaces réservés pour tous les arguments supplémentaires requis par l'application.

    Exemple :

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

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

Environnement local et autre

L'agent Cloud Debugger pour Go n'est disponible que dans les environnements locaux ou autres utilisant Go 1.9 ou une version antérieure.