Déboguer un service exécuté localement dans Cloud Code pour IntelliJ
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cloud Code vous permet de déboguer vos services 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 services distantes exécutées dans des conteneurs.
Avant de déboguer votre service, vous devez créer votre configuration de débogage :
Accédez au sélecteur de configuration Run/Debug (Exécution/Débogage) dans la barre de navigation, puis cliquez sur Edit Configurations (Modifier les configurations).
Sélectionnez Cloud Run: Run Locally (Cloud Run : Exécuter localement) sous Cloud Code: Cloud Run.
Cliquez sur OK.
Déboguer votre service
Pour déboguer votre service, procédez comme suit :
Cliquez sur Déboguer pour Cloud Run: Run Locally (Cloud Run : Exécuter localement) afin de démarrer le cycle de développement en mode de débogage.
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").
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.
Pour accéder à votre service 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 service et celui-ci se met en pause à la ligne marquée par le point d'arrêt.
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
Le tableau suivant répertorie les langages et les IDE compatibles avec Cloud Code pour le débogage. Le tableau liste également les plug-ins requis, le cas échéant :
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 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 à 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.
Pour ce faire, procédez de l'une des façons suivantes :
Configuration manuelle
Sélectionnez la configuration d'exécution Cloud Run: Run Locally (Cloud Run : Exécuter localement) dans la liste déroulante, puis cliquez sur 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.
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.
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 sera présenté dans une boîte de dialogue (une boîte de dialogue pour chaque artefact que vous déboguez).
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 cliquez sur Annuler, aucun mappage n'est appliqué.
Go
Pour configurer votre application pour le débogage, elle doit être une application à base de Modules Go et être identifiée en tant que telle en définissant l'une des Variables d'environnement d'exécution Go standard dans le conteneur, par exemple GODEBUG, GOGC, GOMAXPROCS ouGOTRACEBACK. 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).
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 connaître les IDE, les éditions et les plug-ins compatibles, consultez la section 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é
Sans interpréteur Python configuré dans votre projet, le débogage ne fonctionne pas car il n'existe aucun moyen 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 pas, ajoutez-en un dans l'onglet SDK.
PyCharm
Accédez à Fichier > Paramètres > Projet > Interpréteur Python ou pour macOS X, PyCharm > Préférences > Projet > Interpréteur Python, puis ajoutez un interpréteur Python.
Pour envoyer des commentaires ou signaler un problème dans votre IDE IntelliJ, accédez à Outils > Cloud Code > Aide / À propos > Envoyer des commentaires ou signaler un problème pour signaler un problème sur GitHub.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eCloud Code allows local debugging of Cloud Run services in a Cloud Run-like environment, enabling users to set breakpoints, step through code, and debug remote services running in containers.\u003c/p\u003e\n"],["\u003cp\u003eDebugging a service requires creating a debug configuration by selecting "Cloud Run: Run Locally" under "Cloud Code: Cloud Run" in the Run/Debug configurations.\u003c/p\u003e\n"],["\u003cp\u003eCloud Code supports debugging for Java, Go, Node.js, and Python, with specific IDEs and plugin requirements detailed for each language.\u003c/p\u003e\n"],["\u003cp\u003eNode.js debugging may require manual or automatic source mapping to align local and remote sources, while Go applications need to be Go Module-based and may benefit from specific build options.\u003c/p\u003e\n"],["\u003cp\u003ePython debugging requires a Python SDK configured within your project's IDE, and it also requires a skaffold version of 1.25.0 or greater.\u003c/p\u003e\n"]]],[],null,["# Debug a locally running service in Cloud Code for IntelliJ\n\n| **Note:** Debugging support is currently available for Java, Go, Node.js, and Python services.\n\nWith Cloud Code, you can debug your Cloud Run services\nlocally in a Cloud Run-like environment. You can set breakpoints, step through\nyour code, and debug remote services running in containers.\n\nCloud Code also enables you to [debug an application while making\nchanges to, and iterating on, source code](/code/docs/intellij/watch-modes#applying-changes-while-debugging).\n\nDefining your debug configuration\n---------------------------------\n\nBefore you debug your service, you must create your debug configuration:\n\n1. Navigate to **Run/Debug** configuration selector in the Navigation bar and click **Edit Configurations**.\n2. Choose **Cloud Run: Run Locally** under **Cloud Code: Cloud Run**.\n3. Click **OK**.\n\nDebugging your service\n----------------------\n\nTo debug your service, follow these steps:\n\n1. Click\n **Debug** for **Cloud Run: Run Locally** to start the development cycle in\n debug mode.\n\n2. Cloud Code will attach a debug session. Once successful, the Debug Tool\n window opens, confirming connection (within the Console tab).\n\n3. Click the gutter at the executable line of the code where you want to\n add a breakpoint.\n\n Red filled circles denote active breakpoints, while red-outlined hollow\n circles signify disabled breakpoints.\n4. To access your running service, click the URL displayed in your Event Log panel.\n\n When you do, a new request is sent to your service and it pauses at the\n breakpoint-marked line.\n\n5. To end the debugging session, click the stop icon on the\n Cloud Run: Run Locally run configuration.\n\nSupported IDEs\n--------------\n\nThe following table lists the languages and IDEs that Cloud Code supports for\ndebugging. The table also lists the required plugins, where applicable:\n\nFor more information about IDE support, see\n[Supported JetBrains IDEs](/code/docs/intellij/ides).\n\nWith Cloud Code, you can set breakpoints and\ndebug remote applications running in containers for the following languages: \n\n### Java\n\nCloud Code automatically adds an environment variable,\n`JAVA_TOOL_OPTIONS`, with the appropriate JDWP configuration to\nenable debugging. If `JAVA_TOOL_OPTIONS` is already present,\nCloud Code uses existing settings specified in\n`JAVA_TOOL_OPTIONS`.\n\n### Node.js\n\nDepending on the structure of your application and its image build\nconfiguration, you might have to help the debugger map your local sources\nto the remote sources in the container. This enables the Node debugger\nto correctly process your breakpoints.\n\nYou can configure this in one of the following ways:\n\n- **Manual configuration**\n\n Select the **Cloud Run: Run Locally** Run Configuration from the dropdown\n and then click **Edit Configurations** . On the **Debug** tab, configure the\n source mapping from your local application source to the source\n location in the remote container.\n\n Configuration options:\n - **File/directory** - the local file or directory of your application running on Cloud Run.\n - **Remote path** - the path to the file or directory running in the container on Cloud Run.\n- **Automatic configuration**\n\n You can choose to defer this mapping to Cloud Code. When you\n start your debug session, Cloud Code attempts to infer\n this mapping automatically. The inferred mapping is presented to you in a\n dialog; one dialog for each artifact you are debugging.\n\n Configuration options:\n - **Local path** - the local path to the root of the artifact you are debugging.\n - **Remote path** - the path to the file or directory running in the container on Cloud Run. You can choose to override this with your own value. If you click **Cancel**, no mapping is applied.\n\n | **Note:** Automatic mapping is a best effort guess based on heuristics.\n\n### Go\n\nTo configure your application for debugging, your app must be a\n[Go Module](https://blog.golang.org/using-go-modules)-based application\nand be identified as being Go-based by setting one of the\n[standard Go runtime environment variables](https://godoc.org/runtime)\nin the container, such as `GODEBUG`, `GOGC`, `GOMAXPROCS`, or\n`GOTRACEBACK`. `GOTRACEBACK=single` is the default setting for Go\nand `GOTRACEBACK=all` is a generally useful configuration.\n\nOptionally (but recommended), your app should be built with the\n`-gcflags='all=-N -l'` options to disable optimizations. Skaffold\n[Profiles](https://skaffold.dev/docs/environment/profiles/) are a useful\noption for this purpose and can be set with the **Deployment Profile**\nfield in your Run configuration on the **Build/Deploy** tab.\n\n### Python\n\nTo configure your application for debugging, ensure you meet the following\nprerequisites:\n\n- **IDE, edition, and plugin are compatible**\n\n For compatible IDEs, editions, and plugins, see\n [Supported IDEs](#supported_ides).\n- **Skaffold version is 1.25.0 or greater**\n\n You can allow Cloud Code to [manage your dependencies](/code/docs/intellij/install#managed_dependencies),\n or point to a local Skaffold installation. See **Preferences \\\u003e Tools \\\u003e\n Cloud Code \\\u003e Dependencies**.\n- **Python interpreter is configured**\n\n Without a Python interpreter configured in your project,\n debugging won't work, as there is no way to run `pydevd`, the\n underlying Python debugger.\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\nFor more information, see the [Skaffold debug\ndocumentation](https://skaffold.dev/docs/workflows/debug/).\n\nGet support\n-----------\n\nTo submit feedback or report an issue in your IntelliJ IDE, go to **Tools** \\\u003e **Cloud Code** \\\u003e **Help / About** \\\u003e **Submit\nfeedback or report an issue** to report an issue on [GitHub](https://github.com/GoogleCloudPlatform/cloud-code-intellij/issues)."]]