Déboguer une application exécutée localement

Cloud Code vous permet de déboguer vos applications Cloud Run localement dans un environnement de type Cloud Run. Vous pouvez définir des points d'arrêt, parcourir votre code et déboguer les applications distantes exécutées dans des conteneurs.

Définir la configuration de débogage

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

  1. Accédez à la boîte de dialogue "Run/Debug configurations" (Configurations d'exécution/de débogage) dans la barre des tâches supérieure, puis cliquez sur "Edit Configurations" (Modifier les configurations).
  2. Sélectionnez "Cloud Run: Run Locally" (Cloud Run : Exécuter localement) sous Cloud Code : Cloud Run.
  3. Cliquez sur "OK".

Déboguer votre application

Pour déboguer votre application, 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

  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 à votre application en cours d'exécution, cliquez sur l'URL affichée dans le panneau "Event Log" (Journal des événements).

    Lorsque vous effectuez cette opération, une nouvelle requête est envoyée à votre application et celle-ci se met en pause à la ligne marquée par le point d'arrêt.

    Journal des événements avec notification de déploiement réussi et URL pour prévisualiser votre application

  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).

Détails de la configuration

Cloud Code, dans sa configuration d'origine fournie par Skaffold, peut vous aider à configurer vos sessions de débogage. Avec Cloud Code, vous pouvez définir des points d'arrêt et déboguer les applications distantes exécutées 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 elle est déjà présente, 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 création d'images, vous devrez peut-être aider le débogueur à mapper vos sources locales avec les sources distantes du conteneur. Cela permet au débogueur de nœud de traiter correctement vos points d'arrêt.

Il existe deux façons de procéder à cette configuration :

  1. Configuration manuelle

    Dans le menu déroulant, sélectionnez la configuration d'exécution "Cloud Run: Run Locally" (Cloud Run : Exécuter localement) et sélectionnez "Edit Configurations" (Modifier les configurations). Dans l'onglet "Debug" (Débogage), configurez le mappage de source de votre source d'application locale avec l'emplacement source dans le conteneur distant.

    Choisir un emplacement source dans la section du mappage de source de l'onglet

    Options de configuration :

    • File/Directory (Fichier/Répertoire) : fichier ou répertoire local de votre application s'exécutant sur Cloud Run.
    • Remote Path (Chemin d'accès à distance) : chemin d'accès au fichier ou au répertoire exécuté dans le conteneur sur Cloud Run.
  2. 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. Il vous sera 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.
    • Remote Path (Chemin d'accès à distance) : chemin d'accès au fichier ou au répertoire exécuté dans le conteneur sur Cloud Run. Vous pouvez choisir de remplacer ce paramètre par votre propre valeur. Si vous appuyez sur Cancel, aucun mappage n'est appliqué.

Go

Pour configurer votre application pour le débogage, elle doit être :

  • une application basée sur un module Go ;
  • identifiée comme Go en définissant l'une des variables de l'environnement d'exécution Go standard dans le conteneur, telles que GODEBUG, GOGC, GOMAXPROCS, ou GOTRACEBACK. GOTRACEBACK=single est le paramètre par défaut pour Go, et 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 à cette fin. Ils peuvent être définis à l'aide du champ "Deployment Profile" (Profil de déploiement) de votre configuration d'exécution dans l'onglet "Build/Deploy" (Compilation/Déploiement).

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

Assistance

Pour envoyer vos commentaires, signalez tout problème sur GitHub ou posez une question sur Stack Overflow.