借助 Cloud Code,您可以在类似 Cloud Run 的环境中,在本地调试 Cloud Run 服务。您可以设置断点,单步调试代码以及调试在容器中运行的远程服务。
借助 Cloud Code,您还可以在更改和迭代源代码时调试应用。
定义调试配置
在调试服务之前,必须先创建调试配置:
- 转到导航栏的运行/调试 配置选择器,然后点击修改配置。
- 在 Cloud Code: Cloud Run.下选择 Cloud Run: Run Locally。
- 点击确定。
调试服务
如需调试您的服务,请按以下步骤操作:
点击 Cloud Run: Run Locally 对应的 Debug,以调试模式启动开发周期。
Cloud Code 将连接一个调试会话。成功连接后,系统会打开调试工具窗口,并确认连接(在“Console”标签页中)。
点击要向其中添加断点的可执行代码行的间距部分。
红色实心圆表示活跃断点,而红色轮廓的空心圆表示已停用的断点。
要访问正在运行的服务,请点击“Event Log”面板中显示的网址。
执行此操作后,系统会向您的服务发送新请求,并在标记了断点的行暂停。
如需结束调试会话,请点击“Cloud Run: Run Locally”运行配置上的停止图标。
支持的 IDE
下表列出了 Cloud Code 支持进行调试的语言和 IDE。下表还列出了所需的插件(如适用):
语言 | 支持的 IDE 和版本 | 所需插件 |
---|---|---|
Java | IntelliJ IDEA Ultimate 版 | 不适用 |
IntelliJ IDEA 社区 | 不适用 | |
Go | IntelliJ IDEA Ultimate 版 | Go 插件 |
GoLand | 不适用 | |
Node.js | IntelliJ IDEA Ultimate 版 | Node.js 插件 |
WebStorm | 不适用 | |
Python | IntelliJ IDEA Ultimate 版 | Python 插件 |
PyCharm Professional 版 | 不适用 |
如需详细了解 IDE 支持,请参阅受支持的 JetBrains IDE。
借助 Cloud Code,您可以针对以下语言设置断点并调试在容器中运行的远程应用:
Java
Cloud Code 会自动添加具有相应 JDWP 配置的环境变量 JAVA_TOOL_OPTIONS
以启用调试。如果 JAVA_TOOL_OPTIONS
已存在,Cloud Code 将使用 JAVA_TOOL_OPTIONS
中指定的现有设置。
Node.js
根据应用结构及其映像构建配置,您可能需要帮助调试程序将本地源映射到容器中的远程源。这样,节点调试程序就能正确处理断点。
您可以通过以下方式之一进行配置:
手动配置
从下拉列表中选择 Cloud Run: Run Locally 运行配置,然后点击 Edit Configurations。在 Debug 标签页上,配置从本地应用源到远程容器中源位置的源映射。
配置选项:
- 文件/目录 - 在 Cloud Run 上运行的应用的本地文件或目录。
- 远程路径 - 在 Cloud Run 上容器中运行的文件或目录的路径。
自动配置
您可以选择推迟到 Cloud Code 的映射。当您启动调试会话时,Cloud Code 会尝试自动推断此映射。推断的映射将以对话框的形式显示;每个要调试的工件一个对话框。
配置选项:
- 本地路径 - 要调试的工件的根目录本地路径。
- 远程路径 - 在 Cloud Run 上容器中运行的文件或目录的路径。 您可以选择将其替换为自己的值。如果点击 Cancel,则不会应用映射。
Go
如需为您的应用配置调试,您的应用必须是基于 Go 模块的应用,并通过设置标准 Go 运行时环境环境变量(例如 GODEBUG
、GOGC
、GOMAXPROCS
或 GOTRACEBACK
)来判定基于 Go。GOTRACEBACK=single
是 Go 的默认设置,GOTRACEBACK=all
是常用配置。
(可选,但不建议)您的应用应使用 -gcflags='all=-N -l'
选项进行构建,以停用优化。Skaffold 配置文件是用于此目的的实用选项,您可以在构建/部署标签页下,使用“运行”配置中的部署配置文件字段进行设置。
Python
要配置应用以进行调试,请确保满足以下前提条件:
使用兼容的 IDE、版本和插件
如需了解兼容的 IDE、版本和插件,请参阅支持的 IDE。
Skaffold 版本为 1.25.0 或更高版本
您可以允许 Cloud Code 管理您的依赖项或指向本地 Skaffold 安装。请查看 Preferences > Tools > Cloud Code > Dependencies。
已配置 Python 解释器
如果项目中没有配置 Python 解释器,调试将不起作用,因为无法运行底层 Python 调试程序
pydevd
。IDE 如何配置 IntelliJ IDEA 使用 Cloud Code 进行 Python 调试需要为项目配置 Python SDK。
转到 File > Project Structure,在 Project 标签页中添加 Python SDK。如果不存在,请在 SDK 标签页下添加一个。PyCharm 转到 File > Settings > Project > Python Interpreter(对于 Mac OS X,转到 PyCharm > Preferences > Project > Python Interpreter),然后添加 Python 解释器。
如需了解详情,请参阅 Skaffold 调试文档。