Cómo depurar un servicio que se ejecuta de forma local en Cloud Code para IntelliJ
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Con Cloud Code, puedes depurar tus servicios de Cloud Run de forma local en un entorno similar a Cloud Run. Puedes establecer interrupciones, revisar el código y depurar servicios remotos que se ejecutan en contenedores.
Antes de depurar tu servicio, debes crear la configuración de depuración:
Navega al selector de configuración Run/Debug en la barra de navegación y haz clic en Edit Configurations.
Elige Cloud Run: Run Locally en Cloud Code: Cloud Run.
Haga clic en OK.
Depura tu servicio
Para depurar tu servicio, sigue estos pasos:
Haz clic en Depurar para Cloud Run: Run Locally y, así, iniciar el ciclo de desarrollo en modo de depuración.
Cloud Code adjuntará una sesión de depuración. Una vez que se complete de forma correcta, se abrirá la ventana de la Herramienta de depuración para confirmar la conexión (dentro de la pestaña Console).
Haz clic en el margen en la línea ejecutable del código en el que deseas agregar una interrupción.
Los círculos rellenos de color rojo indican las interrupciones activas, mientras que los círculos vacíos con contornos rojos indican las interrupciones inhabilitadas.
Para acceder a tu servicio en ejecución, haz clic en la URL que se muestra en el panel de Registro de eventos.
Cuando lo hagas, se enviará una solicitud nueva a tu servicio y se pausará en la línea marcada con puntos de interrupción.
Para finalizar la sesión de depuración, haz clic en el ícono de detener en la configuración de ejecución de Cloud Run: Run Locally.
IDE compatibles
En la siguiente tabla, se enumeran los lenguajes y los IDE que admite Cloud Code para la depuración. En la tabla, también se enumeran los complementos necesarios, cuando corresponda:
Con Cloud Code, puedes establecer interrupciones y depurar las aplicaciones remotas que se ejecutan en contenedores para los siguientes lenguajes:
Java
Cloud Code agrega de forma automática una variable de entorno, JAVA_TOOL_OPTIONS, con la configuración JDWP adecuada para habilitar la depuración. Si JAVA_TOOL_OPTIONS ya se agregó, Cloud Code usa la configuración existente especificada en JAVA_TOOL_OPTIONS.
Node.js
Según la estructura de la aplicación y la configuración de compilación de tu imagen, es posible que debas ayudar al depurador a asignar tus fuentes locales a las fuentes remotas del contenedor. Esto permite que el depurador de nodos procese tus interrupciones de forma correcta.
Puedes configurarlo de una de las siguientes maneras:
Configuración manual
Selecciona Cloud Run: Run Locally en la lista desplegable y haz clic en Edit Configurations. En la pestaña Debug, configura la asignación de origen de tu origen de aplicación local a la ubicación de origen en el contenedor remoto.
Opciones de configuración:
File/Directory: Es el archivo local o directorio de la aplicación que se ejecuta en Cloud Run.
Remote Path: Es la ruta de acceso al archivo o directorio que se ejecuta en el contenedor en Cloud Run.
Configuración automática
Puedes optar por diferir este mapeo a Cloud Code. Cuando inicias tu sesión de depuración, Cloud Code intenta inferir esta asignación de forma automática. La asignación inferida se presenta en un cuadro de diálogo, un diálogo por cada artefacto que depures.
Opciones de configuración:
Local path: es la ruta de acceso local a la raíz del artefacto que se depura.
Remote Path: Es la ruta de acceso al archivo o directorio que se ejecuta en el contenedor en Cloud Run. Puedes anularlo con tu propio valor. Si haces clic en Cancel, no se aplicará ninguna asignación.
Comienza a usarlo
A fin de configurar tu aplicación para la depuración, tu aplicación debe ser una aplicación basada en el Módulo de Go y debe identificarse como basada en Go mediante la configuración de una de las variables de entorno de ejecución de Go estándar en el contenedor, como GODEBUG, GOGC, GOMAXPROCS o GOTRACEBACK. GOTRACEBACK=single es la configuración predeterminada para Go y GOTRACEBACK=all es, por lo general, una configuración útil.
De forma opcional (pero recomendada), tu aplicación debe compilarse con las opciones -gcflags='all=-N -l' para inhabilitar las optimizaciones. SkaffoldPerfiles son una opción útil para este fin y se pueden configurar con el Perfil de implementación en tu configuración de ejecución en la pestaña Build/Deploy.
Python
A fin de configurar tu aplicación para la depuración, asegúrate de cumplir con los siguientes requisitos:
IDE, edición y complemento son compatibles
Para obtener información sobre IDE, ediciones y complementos compatibles, consulta IDE compatibles.
La versión de Skaffold es 1.25.0 o superior
Puedes permitir que Cloud Code administre tus dependencias o apunte a una instalación local de Skaffold. Consulta Preferencias > Herramientas > Cloud Code > Dependencias.
Se configuró el intérprete de Python
Sin un intérprete de Python configurado en tu proyecto, la depuración no funcionará, ya que no hay forma de ejecutar pydevd, el depurador subyacente de Python.
IDE
Cómo configurar
IntelliJ IDEA
La depuración de Python con Cloud Code requiere que se configure un SDK de Python para tu proyecto.
Ve a File > Project Structure y agrega un SDK de Python en la pestaña Project. Si no existe ninguna, agrega una en la pestaña SDK.
PyCharm
Ve a File > Settings > Project > Python Interpreter o para Mac OS X, PyCharm > Preferences > Python > Python Interpreter y agrega un intérprete de Python.
Para enviar comentarios o informar un problema en tu IDE de IntelliJ, ve a Tools > Cloud Code > Help / About > Submit feedback or report an issue para informar un problema en GitHub.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)."]]