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 :
Vérifiez que l'API Cloud Debugger est activée pour votre projet.
Installez et configurez le Debugger sur l'environnement de calcul que vous utilisez.
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 :
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
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 formatmodule - version
. Par exemple,main - 1.0
.PATH_TO_BINARY
spécifie le chemin relatif au binaire d'application.ARG1
etARG2
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:
Dans la section Pools de nœuds, sélectionnez Sécurité, puis cliquez sur Définir l'accès pour chaque API.
Activez Debugger.
Facultatif : Sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud.
Compute Engine
Assurez-vous que les instances de VM Compute Engine exécutent une image Debian Linux 64 bits.
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
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.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
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 formatmodule - version
. Par exemple,main - 1.0
.PATH_TO_BINARY
spécifie le chemin relatif au binaire d'application.ARG1
etARG2
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.