Déboguer un service Cloud Run dans Cloud Code for VS Code

Cloud Code pour VS Code vous permet de déboguer facilement une application déployée dans Cloud Run à l'aide de skaffold debug. Pour en savoir plus sur le débogage de Skaffold, consultez la page Déboguer avec Skaffold.

Vous n'avez pas besoin d'effectuer la configuration manuelle, telle que la configuration du transfert de port ou l'injection d'arguments de débogage spécifiques à la langue. Le débogage nécessite une application Cloud Run compatible avec Cloud Code, comprenant un fichier de configuration skaffold.yaml et un fichier launch.json de type cloudcode.cloudrun.

Déboguer votre service Cloud Run

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

  1. Pour exécuter votre service et y associer une session de débogage, ouvrez la palette de commandes (appuyez sur Ctrl/Cmd+Shift+P ou cliquez sur View > Command Palette) (Affichage > Palette de commandes), puis exécutez la commande Debug on Cloud Run Emulator.

  2. Dans la boîte de dialogue "Run/Debug on Cloud Run Emulator" (Exécution/Débogage sur l'émulateur Cloud Run), définissez les spécifications de votre configuration :

    • Choisissez Docker ou Buildpacks comme compilateur, puis spécifiez votre fichier Dockerfile ou Buildpack.
    • (Facultatif) Pour spécifier une cible Dockerfile ou des arguments de compilation, cliquez sur Show Advanced Build Settings (Afficher les paramètres de compilation avancés), puis spécifiez la cible ou les arguments.
    • (Facultatif) Pour spécifier un nom de service personnalisé, une URL d'image de conteneur, un port de conteneur, l'identité du service à utiliser, le nombre de processeurs dédiés ou la quantité de mémoire à allouer à chaque instance de conteneur, cliquez sur Afficher les paramètres avancés du service, puis spécifiez les valeurs.
    • (Facultatif) Pour spécifier des variables d'environnement, cliquez sur Show Advanced Service Settings (Afficher les paramètres avancés du service), sur Environment Variables (Variables d'environnement), puis spécifiez les valeurs.
    • (Facultatif) Pour spécifier des connexions Cloud SQL, cliquez sur Connexions, puis spécifiez une connexion par ligne.
    • (Facultatif) Pour que VS Code rétablisse une session de débogage après avoir enregistré une modification dans votre code, cochez la case Automatic re-build and re-run on changes (Recompiler et réexécuter automatiquement en cas de modification).

    Si vous souhaitez personnaliser davantage l'exécution de votre service, vous pouvez modifier directement votre fichier launch.json.

  3. Pour commencer le débogage de votre service, cliquez sur Debug (Déboguer).

  4. Si vous y êtes invité, authentifiez vos identifiants pour exécuter et déboguer une application localement.

  5. Pour chaque conteneur débogable dans votre service, confirmez ou saisissez le répertoire du conteneur distant dans lequel se trouve le programme à déboguer.

    Vous pouvez également appuyer sur ESC pour ignorer le débogage d'un conteneur.

    Invite de racine distante

    Cloud Code rattache une session de débogage pour chaque conteneur débogable dans le service.

    Par défaut, lorsque vous enregistrez une modification apportée à votre application, Cloud Code redéploie l'application et configure une nouvelle session de débogage. Vous pouvez activer ou désactiver cette fonctionnalité avec l'option watch dans la configuration de lancement de votre projet.

  6. Pour ajouter un point d'arrêt, dans l'éditeur, cliquez dans la marge du fichier que vous déboguez.

    Les cercles pleins rouges indiquent les points d'arrêt actifs et les cercles vides gris indiquent les points d'arrêt inactifs.

    Pour un contrôle plus précis des points d'arrêt, vous pouvez utiliser la section "Points d'arrêt" de la vue "Débogage" de VS Code.

    Section "Points d'arrêt" dans le panneau de gauche de la page de débogage, qui permet d'ajouter, de supprimer et de désactiver des points d'arrêt

    Lorsque vous envoyez une nouvelle requête à votre service, celle-ci s'interrompt sur la ligne spécifiée.

  7. Une fois la session terminée, effectuez un clic droit pour utiliser les commandes suivantes:

    • Afficher les journaux:ouvrez les journaux d'application d'un déploiement spécifique à l'aide de l'explorateur de journaux Cloud Code.
    • Open URL (Ouvrir l'URL) : ouvre l'URL du service d'application d'un service spécifique dans un navigateur Web
  8. Si vous avez désactivé le mode de surveillance dans votre configuration de lancement et que vous souhaitez modifier votre application, puis la recompiler et la redéployer, cliquez sur la barre d'état Cloud Code, puis sur Activer le mode de surveillance.

  9. Si vous souhaitez inspecter les variables et les informations de pile, utilisez la barre latérale "Debug" (Débogage). Pour interagir avec la session de débogage, utilisez la console de débogage dans le volet inférieur du débogueur.

  10. Pour arrêter votre déploiement, cliquez sur le bouton Stop (Arrêter) dans la barre d'action de votre déploiement actuel.

    Barre d'actions pour le déploiement Cloud Run

Résoudre les problèmes liés à la compilation de conteneurs

Si vous obtenez le code d'erreur BUILD_DOCKER_UNKNOWN, cela indique un problème avec Docker. Pour résoudre ce problème, effectuez une ou plusieurs des tâches suivantes:

  • Redémarrez Docker et réessayez de compiler le conteneur.

  • Si l'erreur persiste après le redémarrage, il est possible que Docker manque d'espace disque. Pour en savoir plus sur le nettoyage des objets non utilisés dans Docker, consultez la section Élaguer les objets Docker inutilisés.

  • Essayez l'extension Utilisation du disque de Docker pour récupérer de l'espace.

Détails de la configuration

Cloud Code gère les détails de configuration suivants, spécifiques au langage:

Node.js

Réécriture du point d'entrée à appeler :

node --inspect=localhost:9229

Python

Installation du module ptvsd à l'aide d'un conteneur d'initialisation et réécriture du point d'entrée à appeler :

python -m ptvsd --host localhost --port 5678

Go

Installation du débogueur dlv à l'aide d'un conteneur init et de la réécriture du point d'entrée, de sorte que la session de débogage lancée s'exécute avec un serveur de débogage uniquement (en mode sans interface graphique), continue le processus débogué au démarrage, accepte plusieurs connexions client et écoute à l'adresse localhost:56268 :

dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, <app> --

Java

Ajout d'un environnement JAVA_TOOLS_OPTIONS avec la configuration JDWP (Java Debug Wire Protocol) appropriée, de sorte que l'agent de débogage JDWP écoute une connexion de socket sur le port 5005 et permet à la VM de commencer à s'exécuter avant Debugger est associé :

jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y

.NET

Les applications .NET Core sont configurées pour être déployées avec vsdbg pour VS Code.

Si vous rencontrez des problèmes avec la configuration automatique, consultez la section Configuration et configuration détaillées du débogueur pour obtenir de l'aide.

Assistance

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