Déboguer un service en cours d'exécution localement

Cloud Code vous permet de déboguer vos services Cloud Run en local dans un environnement de type Cloud Run. Vous pouvez définir des points d'arrêt, parcourir votre code et déboguer les services distants exécutés dans des conteneurs.

Définir la configuration de débogage

Avant de déboguer votre service, vous devez créer votre configuration de débogage:

  1. Accédez au sélecteur de configuration Run/Debug (Exécuter/Déboguer) dans la barre de navigation, puis cliquez sur Edit Configurations (Modifier les configurations).
  2. Sélectionnez Cloud Run: Exécuter en local sous Cloud Code: Cloud Run.
  3. Cliquez sur OK.

Déboguer votre service

Pour déboguer votre service, procédez comme suit:

  1. Cliquez sur l'action de débogage icône d'action de débogage pour "Cloud Run: Run Locally" (Cloud Run : Exécuter localement) pour démarrer le cycle de développement en mode de débogage.

    Cliquer sur "Cloud Run: Run Locally" (Cloud Run : Exécuter localement) en mode de débogage

  2. Cloud Code rattache alors une session de débogage. Une fois l'opération réussie, la fenêtre "Debug Tool" (Outil de débogage) s'ouvre, confirmant la connexion (dans l'onglet "Console").

  3. Cliquez sur la marge de la ligne exécutable du code auquel vous souhaitez ajouter un point d'arrêt.

    Les cercles pleins rouges indiquent les points d'arrêt actifs, tandis que les cercles vides rouges indiquent les points d'arrêt désactivés.

  4. Pour accéder au service en cours d'exécution, cliquez sur l'URL affichée dans le panneau du journal des événements.

    Une nouvelle requête est alors envoyée à votre service. Elle est interrompue à l'étape point d'arrêt.

    Journal des événements avec une notification relative au déploiement réussie et une URL permettant de prévisualiser votre service

  5. Pour mettre fin à la session de débogage, cliquez sur l'icône d'arrêt de la configuration d'exécution "Cloud Run: Run Locally" (Cloud Run : Exécuter localement).

IDE compatibles

Pour obtenir les IDE, éditions et plug-ins compatibles, consultez le tableau suivant:

Langage IDE Édition Plug-in requis
Java IntelliJ IDEA Communauté ou ultime Non disponible
Go IntelliJ IDEA Ultime Plug-in Go
GoLand Non disponible Non disponible
Node.js IntelliJ IDEA Ultime Plug-in Node.js
WebStorm Non disponible Non disponible
Python IntelliJ IDEA Ultime Plug-in Python
PyCharm Professionnel Non disponible

Avec Cloud Code, vous pouvez définir des points d'arrêt et déboguer des applications à distance s'exécutant dans des conteneurs pour les langages suivants:

Java

Cloud Code ajoute automatiquement une variable d'environnement JAVA_TOOL_OPTIONS avec la configuration JDWP appropriée pour permettre le débogage. Si JAVA_TOOL_OPTIONS est déjà présent, Cloud Code utilise les paramètres existants spécifiés dans JAVA_TOOL_OPTIONS.

Node.js

Selon la structure de votre application et sa configuration de compilation d'images, vous devrez peut-être aider le débogueur à accéder à vos sources locales dans le conteneur. Cela permet au débogueur de nœud de traiter correctement vos points d'arrêt.

Vous pouvez configurer cette configuration de l'une des manières suivantes:

  • Configuration manuelle

    Sélectionnez Cloud Run: Run Locally Run Configuration (Cloud Run : exécuter en local) dans la liste déroulante, puis cliquez sur Edit Configurations (Modifier les configurations). Dans l'onglet Débogage, configurez le mappage source de la source de votre application locale sur l'emplacement source du conteneur distant.

    Choisir un emplacement source dans la section du mappage de source de l'onglet "Debug" (Débogage)

    Options de configuration :

    • Fichier/répertoire : fichier ou répertoire local de l'application s'exécutant sur Cloud Run.
    • Chemin d'accès distant : chemin d'accès au fichier ou répertoire exécuté dans le conteneur sur Cloud Run.
  • Configuration automatique

    Vous pouvez choisir de déléguer ce mappage à Cloud Code. Lorsque vous démarrez votre session de débogage, Cloud Code tente de déduire automatiquement ce mappage. Le mappage déduit vous est présenté dans une boîte de dialogue. une boîte de dialogue pour chaque artefact que vous déboguez.

    Boîte de dialogue de mappage de chemin d'accès à distance pour chaque artefact spécifiant le chemin à distance utilisé

    Options de configuration :

    • Local path (Chemin d'accès local) : chemin d'accès local à la racine de l'artefact que vous déboguez.
    • Chemin d'accès distant : chemin d'accès au fichier ou répertoire exécuté dans le conteneur sur Cloud Run. Vous pouvez choisir de remplacer cette valeur par votre propre valeur. Si vous cliquez sur Annuler, aucun mappage n'est appliqué.

Go

Pour configurer le débogage de votre application, celle-ci doit être unModule Go application basée sur Go en définissant l'une des valeurs suivantes :Variables d'environnement d'exécution Go standards dans le conteneur. Par exemple :GODEBUG ;GOGC ;GOMAXPROCS ouGOTRACEBACK (Installation de Python groupée). GOTRACEBACK=single est le paramètre par défaut pour Go. GOTRACEBACK=all est une configuration généralement utile.

Si possible (mais recommandé), votre application doit être créée avec les options -gcflags='all=-N -l' pour désactiver les optimisations. Les profils Skaffold sont une option utile à cet effet et peuvent être définis avec le champ Profil de déploiement dans votre configuration d'exécution sur la Onglet "Développer/Déployer"

Python

Pour configurer votre application pour le débogage, assurez-vous de remplir les conditions préalables suivantes:

  • IDE, édition et plug-in compatibles

    Pour les IDE, éditions et plug-ins compatibles, consultez la page IDE compatibles.

  • Version Skaffold 1.25.0 ou ultérieure

    Vous pouvez autoriser Cloud Code à gérer vos dépendances ou pointer vers une installation Skaffold locale. Consultez la section Préférences > Outils > Cloud Code > Dépendances.

  • L'interpréteur Python est configuré

    Si aucun interpréteur Python n'est configuré dans votre projet, le débogage ne fonctionne pas, car il est impossible d'exécuter pydevd, le débogueur Python sous-jacent.

    IDE Procédure de configuration
    IntelliJ IDEA Le débogage Python avec Cloud Code nécessite la configuration d'un SDK Python pour votre projet.

    Accédez à Fichier > Structure du projet et ajoutez un SDK Python dans l'onglet Projet. S'il n'en existe aucune, ajoutez-en une sous l'onglet SDK.
    PyCharm Accédez à File > Settings > Project > Python interprèter ou, pour Mac OS X, à PyCharm > Preferences > Project > Python Interprétationer, puis ajoutez un interpréteur Python. (Installation de Python groupée).

Pour en savoir plus, consultez la documentation de débogage Skaffold.

Assistance

Pour envoyer des commentaires ou signaler un problème dans votre IDE IntelliJ, accédez à Tools > Cloud Code > Aide / À propos > Envoyez des commentaires ou signalez un problème pour signaler un problème sur GitHub, ou posez une question sur Stack Overflow.

Vous pouvez également rejoindre la chaîne #cloud-code, qui fait partie de la communauté Slack Google Cloud.