在 Cloud Code for IntelliJ 中偵錯本地執行的服務

您可以使用 Cloud Code,在類似 Cloud Run 的環境中在本機偵錯 Cloud Run 服務。您可以設定中斷點、逐步執行程式碼,以及偵錯在容器中執行的遠端服務。

您也可以使用 Cloud Code 在變更原始碼並進行疊代時,對應用程式進行偵錯

定義偵錯設定

您必須先建立偵錯設定,才能偵錯服務:

  1. 前往導覽列中的「Run/Debug」設定選取器,然後按一下「Edit Configurations」
  2. 在「Cloud Code: Cloud Run」下方,選擇「Cloud Run: Run Locally」
  3. 按一下 [確定]

對服務進行偵錯

如要對服務進行偵錯,請按照下列步驟操作:

  1. 按一下「Cloud Run:在本機執行」偵錯動作圖示「Debug」,以偵錯模式啟動開發週期。

    在 Cloud Run 中按一下「Run」:在本機以偵錯模式執行

  2. Cloud Code 會連結一個偵錯工作階段。成功連線後,Debug Tool 視窗會開啟,並確認連線 (在「控制台」分頁中)。

  3. 在要新增中斷點的程式碼可執行行中,按一下空白處。

    紅色實心圓圈代表有效中斷點,而紅色空心圓圈則代表已停用的中斷點。

  4. 如要存取執行中的服務,請按一下「Event Log」面板中顯示的網址。

    這樣一來,系統就會傳送新要求給您的服務,並在中斷點標示的行暫停。

    事件記錄,其中包含成功部署通知和用於預覽服務的網址

  5. 如要結束偵錯工作階段,請按一下「Cloud Run:在本機執行」執行設定上的停止圖示。

支援的 IDE

下表列出 Cloud Code 支援的偵錯語言和 IDE。表格中也會列出必要的外掛程式 (如適用):

語言 支援的 IDE 和版本 必要外掛程式
Java IntelliJ IDEA Ultimate 不適用
IntelliJ IDEA Community 不適用
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 會自動新增環境變數 JAVA_TOOL_OPTIONS,並搭配適當的 JDWP 設定,啟用偵錯功能。如果已存在 JAVA_TOOL_OPTIONS,Cloud Code 會使用 JAVA_TOOL_OPTIONS 中指定的現有設定。

Node.js

視應用程式結構和映像檔建構設定而定,您可能需要協助偵錯工具將本機來源對應至容器中的遠端來源。這可讓 Node 偵錯工具正確處理中斷點。

您可以透過下列任一方式設定這項功能:

  • 手動設定

    從下拉式選單中選取「Cloud Run: Run Locally」執行設定,然後點選「Edit Configurations」。在「Debug」分頁中,將來源對應從本機應用程式來源設定為遠端容器中的來源位置。

    在「Debug」分頁的來源對應部分中選擇來源位置

    設定選項:

    • 檔案/目錄:在 Cloud Run 上執行的應用程式本機檔案或目錄。
    • 遠端路徑:在 Cloud Run 容器中執行的檔案或目錄路徑。
  • 自動設定

    您可以選擇將這項對應作業延後至 Cloud Code。開始偵錯工作階段時,Cloud Code 會嘗試自動推斷這項對應。系統會在對話方塊中顯示推測的對應項目,每個正在偵錯的構件都有一個對話方塊。

    針對每個成果,指定所用遠端路徑的對應對話方塊

    設定選項:

    • 本機路徑:您要偵錯的構件根目錄的本機路徑。
    • 遠端路徑:在 Cloud Run 容器中執行的檔案或目錄路徑。您可以選擇覆寫為自己的值。如果您點選「取消」,系統就不會套用對應項目。

Go

如要設定應用程式以進行偵錯,您的應用程式必須是基於 Go 模組的應用程式,並在容器中設定其中一個標準 Go 執行階段環境變數 (例如 GODEBUGGOGCGOMAXPROCSGOTRACEBACK),以便系統識別出這是以 Go 為基礎的應用程式。GOTRACEBACK=single 是 Go 的預設設定,GOTRACEBACK=all 則是一般實用的設定。

您可以選擇 (但建議) 使用 -gcflags='all=-N -l' 選項建構應用程式,以便停用最佳化功能。為此目的,您可以使用 Skaffold Profiles 這個實用選項,並在「Build/Deploy」分頁的「Run」設定中,使用「Deployment Profile」欄位進行設定。

Python

如要設定應用程式以便進行偵錯,請確認您符合下列必要條件:

  • IDE、版本和外掛程式相容

    如要瞭解相容的 IDE、版本和外掛程式,請參閱「支援的 IDE」。

  • Skaffold 版本為 1.25.0 以上版本

    您可以讓 Cloud Code 管理依附元件,或指向本機 Skaffold 安裝。請參閱「偏好設定 > 工具 > Cloud Code > 依附元件」一節。

  • 已設定 Python 解譯器

    如果專案中未設定 Python 解譯器,偵錯作業就無法運作,因為無法執行 pydevd (基礎 Python 偵錯工具)。

    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 偵錯說明文件

取得支援

如要在 IntelliJ IDE 中提交意見回饋或回報問題,請依序前往「Tools」 >「Cloud Code」 >「Help / About」 >「Submit feedback or report an issue」,即可在 GitHub 上回報問題。