您可以使用 Cloud Code,在類似 Cloud Run 的環境中在本機偵錯 Cloud Run 服務。您可以設定中斷點、逐步執行程式碼,以及偵錯在容器中執行的遠端服務。
您也可以使用 Cloud Code 在變更原始碼並進行疊代時,對應用程式進行偵錯。
定義偵錯設定
您必須先建立偵錯設定,才能偵錯服務:
- 前往導覽列中的「Run/Debug」設定選取器,然後按一下「Edit Configurations」。
- 在「Cloud Code: Cloud Run」下方,選擇「Cloud Run: Run Locally」。
- 按一下 [確定]。
對服務進行偵錯
如要對服務進行偵錯,請按照下列步驟操作:
按一下「Cloud Run:在本機執行」的
「Debug」,以偵錯模式啟動開發週期。
Cloud Code 會連結一個偵錯工作階段。成功連線後,Debug Tool 視窗會開啟,並確認連線 (在「控制台」分頁中)。
在要新增中斷點的程式碼可執行行中,按一下空白處。
紅色實心圓圈代表有效中斷點,而紅色空心圓圈則代表已停用的中斷點。
如要存取執行中的服務,請按一下「Event Log」面板中顯示的網址。
這樣一來,系統就會傳送新要求給您的服務,並在中斷點標示的行暫停。
如要結束偵錯工作階段,請按一下「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」分頁中,將來源對應從本機應用程式來源設定為遠端容器中的來源位置。
設定選項:
- 檔案/目錄:在 Cloud Run 上執行的應用程式本機檔案或目錄。
- 遠端路徑:在 Cloud Run 容器中執行的檔案或目錄路徑。
自動設定
您可以選擇將這項對應作業延後至 Cloud Code。開始偵錯工作階段時,Cloud Code 會嘗試自動推斷這項對應。系統會在對話方塊中顯示推測的對應項目,每個正在偵錯的構件都有一個對話方塊。
設定選項:
- 本機路徑:您要偵錯的構件根目錄的本機路徑。
- 遠端路徑:在 Cloud Run 容器中執行的檔案或目錄路徑。您可以選擇覆寫為自己的值。如果您點選「取消」,系統就不會套用對應項目。
Go
如要設定應用程式以進行偵錯,您的應用程式必須是基於 Go 模組的應用程式,並在容器中設定其中一個標準 Go 執行階段環境變數 (例如 GODEBUG
、GOGC
、GOMAXPROCS
或 GOTRACEBACK
),以便系統識別出這是以 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 偵錯說明文件。