程式碼研究室簡介
1. 目標
本研究室將說明:
- 探索 Cloud Code 外掛程式
- 部署至 Kubernetes 叢集
- 串流 Kubernetes 記錄檔
- 利用熱重新載入模式來重新載入變更
- 對運作中的 Kubernetes 應用程式進行偵錯
2. 正在準備工作區
複製應用程式
如何複製存放區並在開發環境中開啟:
- 前往以下網址開啟 Cloud Shell 編輯器
https://ide.cloud.google.com
- 在終端機視窗中,使用下列指令來複製應用程式來源:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- 切換至目錄,並將 IDE 工作區設為存放區根目錄
cd sample-app && cloudshell workspace .
啟動 Minikube
在本節中,您將使用名為 Minikube 的本機 Kubernetes 版本來建構、測試、部署及存取應用程式。
- 在終端機中,執行下列指令來啟動 minikube:
minikube start
Minikube 在 Cloud Shell 中設定本機 Kubernetes 叢集。這項設定需要幾分鐘的時間才能完成。啟動之前,請花點時間查看 Cloud Code 提供的各種介面。
3. 探索 Cloud Code 外掛程式
Cloud Code 提供 Kubernetes 和 Cloud Run 應用程式完整開發週期的 IDE 支援,從現有範本建立應用程式,以及監控已部署的應用程式資源。您將使用 Cloud Code 提供的不同指令和檢視表。在這個步驟中,您將熟悉基本介面。
透過活動列查看探險家檢視畫面
您可以透過活動列存取多個使用者介面面板。若要簡單瞭解各種視圖,請按一下每個檢視的圖示
APIs Explorer:
- 按一下活動列中的「Cloud Code - Cloud API」圖示「Cloud Code」圖示 。如需這個檢視模式的其他操作細節,請參閱說明文件。
Secret Manager Explorer:
- 點選活動列中的「Secret Manager」檢視畫面。如要進一步瞭解如何使用這個檢視模式,請參閱說明文件
Cloud Run Explorer:
- 使用左側活動列中的 Cloud Run 圖示,前往 Cloud Run Explorer。如要進一步瞭解如何使用這個檢視模式,請參閱說明文件
Kubernetes Explorer:
- 使用左側活動列中的圖示,前往 Kubernetes Explorer。如要進一步瞭解如何使用這個檢視模式,請參閱說明文件
查看狀態列指令
您可以透過狀態列中的指標,快速存取常用指令。
- 在狀態列
中找出 Cloud Code 擴充功能指標,然後按一下該指標。
- 查看可在 CloudRun 和 Kubernetes 中執行及偵錯的各種指令
- 如要查看更多詳細資訊和活動範例,請點選「開啟歡迎頁面」
查看指令區塊面板指令
您可以透過指令區塊面板取得其他指令。查看您可以存取的指令清單。
- 開啟「Command Palette」(指令面板) (按下 Ctrl/Cmd+Shift+P 鍵),然後輸入「Cloud Code」來篩選可用的指令。
- 使用方向鍵可瀏覽指令清單。
4. 部署至 Kubernetes 叢集
在本節中,您將建構、測試、部署及存取應用程式。
下列步驟可以開始建構原始碼,然後執行測試。建構與測試會在幾分鐘內執行。這些測試包括單元測試和驗證步驟,可檢查針對部署環境設定的規則。這個驗證步驟已經過設定,可確保您即使仍在開發環境中工作,也會收到部署問題的警告。
- 在 Cloud Shell 編輯器底部的窗格中,選取「Cloud Code」圖示
。
- 在頂端的面板中,選取 [Run on Kubernetes]。畫面出現提示時,請選取「是」以使用 minikube Kubernetes 環境。
- 選取下方窗格
中的「Output」分頁標籤,即可查看進度和通知
- 選取「Kubernetes: Run/Debug - 詳細」在管道下拉式選單中右側的
,即可查看其他詳細資料和從容器串流的即時記錄檔
建構和測試完成後,「Output」(輸出) 分頁標籤會顯示 Resource deployment/sample-app-dev status completed successfully
,以及兩個網址。
- 在 Cloud Code 終端機中,將滑鼠遊標懸停在輸出的第一個網址 (http://localhost:8080) 上,然後在顯示的工具提示中選取「Open Web Preview」。
本機版本的應用程式會在瀏覽器中開啟。這個應用程式版本正在 minikube 的 Kubernetes 叢集中執行。
- 在瀏覽器中重新整理頁面。計數器旁邊的數字會增加,表示應用程式正在回應您的重新整理。
請在瀏覽器中保持此頁面開啟,以便在本機環境進行變更時查看應用程式。
5. 利用熱重新載入模式來重新載入變更
在本節中,您將對應用程式進行變更,以及查看應用程式在本機 Kubernetes 叢集中執行時的變更。在 Kubernetes「Run/Debug」管道的輸出分頁中,除了應用程式網址外,輸出結果也會顯示 Watching for changes.
,表示已啟用智慧手錶模式。Cloud Code 處於監控模式時,Cloud Code 會偵測存放區中所有已儲存的變更,並根據最新變更自動重新建構和重新部署應用程式。
- 在 Cloud Shell 編輯器中,前往 main.go 檔案。
- 在這個 main.go 檔案中,在第 23 行將顏色從綠色變更為藍色。
- 儲存檔案。
Cloud Code 偵測到應用程式變更已成功儲存,並自動重新部署變更。「Output」(輸出) 分頁會顯示「Update Initializer」(更新啟動)。重新部署作業會在幾分鐘內執行。
這項自動重新建構類似於熱程式碼重新載入功能,適用於部分應用程式類型和架構。
- 建構完成後,前往已開啟應用程式的瀏覽器,然後重新整理頁面。
重新整理後,表格頂端的顏色會從藍色變成綠色。
這項設定可針對任何架構 (包含任何元件) 提供這項自動重新載入功能。使用 Cloud Code 和 minikube 時,在 Kubernetes 中執行的任何程式碼都提供這項熱程式碼重新載入功能。
6. 對運作中的 Kubernetes 應用程式進行偵錯
您已執行應用程式、進行變更,並查看執行中的應用程式。在本節中,您將對應用程式進行偵錯,確認應用程式已準備好修訂回主要存放區。
針對這個偵錯範例,我們會著重於網頁計數器程式碼的部分。
- 在 Cloud Shell 編輯器中,開啟 main.go 檔案
- 在應用程式中設定中斷點,方法是按一下第 82 行左側的編號 (如果 err != nil {)
- 在 Cloud Shell 編輯器底部的藍色窗格中,選取「Cloud Code」圖示
。
- 在頂端的面板中,選取 [在 Kubernetes 上偵錯]。
Cloud Code 會執行並附加偵錯工具,這樣您就能存取應用程式的記憶體內狀態,而不只是應用程式的使用者行為。
- 部署程序結束時,視窗頂端會顯示提示,要求您確認部署應用程式的容器中的目錄。
確認值已設為 /go/src/app,然後按 Enter 鍵接受值
- 等待偵錯工具完成部署。狀態列變為橘色,且輸出報表顯示
"Attached debugger to container "sample-app-dev-..." successfully
時,就代表作業已完成。」 - 在 Cloud Code 終端機中,將滑鼠遊標懸停在輸出的第一個網址 (http://localhost:8081) 上,然後在顯示的工具提示中選取「Open Web Preview」。網頁尚未完成載入作業,未如預期完成載入。
- 切換回現在顯示偵錯工具的 IDE。分頁中會顯示呼叫堆疊,以及該部分程式碼可用的變數。您可以展開「變數 - 本機」來查看目前的計數器變數值。
- 如要允許頁面繼續載入,請選取 [繼續]「Debug」視窗中的圖示
- 偵錯完成後,只要按一下停止按鈕,即可終止所有執行中的執行緒。