使用 Cloud Code 進行開發

1. 目標

本研究室將說明:

  • 探索 Cloud Code 外掛程式
  • 部署至 Kubernetes 叢集
  • 串流 Kubernetes 記錄檔
  • 利用熱重新載入模式來重新載入變更
  • 對運作中的 Kubernetes 應用程式進行偵錯

2. 正在準備工作區

複製應用程式

如何複製存放區並在開發環境中開啟:

  1. 前往以下網址開啟 Cloud Shell 編輯器

https://ide.cloud.google.com

  1. 在終端機視窗中,使用下列指令來複製應用程式來源:

git clone https://github.com/viglesiasce/sample-app.git -b golden-path

  1. 切換至目錄,並將 IDE 工作區設為存放區根目錄

cd sample-app && cloudshell workspace .

啟動 Minikube

在本節中,您將使用名為 Minikube 的本機 Kubernetes 版本來建構、測試、部署及存取應用程式。

  1. 在終端機中,執行下列指令來啟動 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」圖示 。如需這個檢視模式的其他操作細節,請參閱說明文件

ded1723c524edd72.png

Secret Manager Explorer:

  • 點選活動列中的「Secret Manager」檢視畫面。如要進一步瞭解如何使用這個檢視模式,請參閱說明文件

89f88159bcf79fa9.png

Cloud Run Explorer:

  • 使用左側活動列中的 Cloud Run 圖示,前往 Cloud Run Explorer。如要進一步瞭解如何使用這個檢視模式,請參閱說明文件

a1d583fd06413011.png

Kubernetes Explorer:

  • 使用左側活動列中的圖示,前往 Kubernetes Explorer。如要進一步瞭解如何使用這個檢視模式,請參閱說明文件

b2b8ab3975c5b0c9.png

查看狀態列指令

您可以透過狀態列中的指標,快速存取常用指令。

  • 在狀態列 d61e85cf23a32a40.png 中找出 Cloud Code 擴充功能指標,然後按一下該指標。
  • 查看可在 CloudRun 和 Kubernetes 中執行及偵錯的各種指令
  • 如要查看更多詳細資訊和活動範例,請點選「開啟歡迎頁面」

查看指令區塊面板指令

您可以透過指令區塊面板取得其他指令。查看您可以存取的指令清單。

  • 開啟「Command Palette」(指令面板) (按下 Ctrl/Cmd+Shift+P 鍵),然後輸入「Cloud Code」來篩選可用的指令。
  • 使用方向鍵可瀏覽指令清單。

4. 部署至 Kubernetes 叢集

在本節中,您將建構、測試、部署及存取應用程式。

下列步驟可以開始建構原始碼,然後執行測試。建構與測試會在幾分鐘內執行。這些測試包括單元測試和驗證步驟,可檢查針對部署環境設定的規則。這個驗證步驟已經過設定,可確保您即使仍在開發環境中工作,也會收到部署問題的警告。

  1. 在 Cloud Shell 編輯器底部的窗格中,選取「Cloud Code」圖示 d61e85cf23a32a40.png
  2. 在頂端的面板中,選取 [Run on Kubernetes]。畫面出現提示時,請選取「是」以使用 minikube Kubernetes 環境。
  3. 選取下方窗格 4866761cb9c691e2.png 中的「Output」分頁標籤,即可查看進度和通知
  4. 選取「Kubernetes: Run/Debug - 詳細」在管道下拉式選單中右側的 c5e31091d464dbcf.png,即可查看其他詳細資料和從容器串流的即時記錄檔

建構和測試完成後,「Output」(輸出) 分頁標籤會顯示 Resource deployment/sample-app-dev status completed successfully,以及兩個網址。

  1. 在 Cloud Code 終端機中,將滑鼠遊標懸停在輸出的第一個網址 (http://localhost:8080) 上,然後在顯示的工具提示中選取「Open Web Preview」。

本機版本的應用程式會在瀏覽器中開啟。這個應用程式版本正在 minikube 的 Kubernetes 叢集中執行。

  1. 在瀏覽器中重新整理頁面。計數器旁邊的數字會增加,表示應用程式正在回應您的重新整理。

請在瀏覽器中保持此頁面開啟,以便在本機環境進行變更時查看應用程式。

5. 利用熱重新載入模式來重新載入變更

在本節中,您將對應用程式進行變更,以及查看應用程式在本機 Kubernetes 叢集中執行時的變更。在 Kubernetes「Run/Debug」管道的輸出分頁中,除了應用程式網址外,輸出結果也會顯示 Watching for changes.,表示已啟用智慧手錶模式。Cloud Code 處於監控模式時,Cloud Code 會偵測存放區中所有已儲存的變更,並根據最新變更自動重新建構和重新部署應用程式。

  1. 在 Cloud Shell 編輯器中,前往 main.go 檔案。
  2. 在這個 main.go 檔案中,在第 23 行將顏色從綠色變更為藍色。
  3. 儲存檔案。

Cloud Code 偵測到應用程式變更已成功儲存,並自動重新部署變更。「Output」(輸出) 分頁會顯示「Update Initializer」(更新啟動)。重新部署作業會在幾分鐘內執行。

這項自動重新建構類似於熱程式碼重新載入功能,適用於部分應用程式類型和架構。

  1. 建構完成後,前往已開啟應用程式的瀏覽器,然後重新整理頁面。

重新整理後,表格頂端的顏色會從藍色變成綠色。

這項設定可針對任何架構 (包含任何元件) 提供這項自動重新載入功能。使用 Cloud Code 和 minikube 時,在 Kubernetes 中執行的任何程式碼都提供這項熱程式碼重新載入功能。

6. 對運作中的 Kubernetes 應用程式進行偵錯

您已執行應用程式、進行變更,並查看執行中的應用程式。在本節中,您將對應用程式進行偵錯,確認應用程式已準備好修訂回主要存放區。

針對這個偵錯範例,我們會著重於網頁計數器程式碼的部分。

  1. 在 Cloud Shell 編輯器中,開啟 main.go 檔案
  2. 在應用程式中設定中斷點,方法是按一下第 82 行左側的編號 (如果 err != nil {)
  3. 在 Cloud Shell 編輯器底部的藍色窗格中,選取「Cloud Code」圖示 d61e85cf23a32a40.png
  4. 在頂端的面板中,選取 [在 Kubernetes 上偵錯]。

Cloud Code 會執行並附加偵錯工具,這樣您就能存取應用程式的記憶體內狀態,而不只是應用程式的使用者行為。

  1. 部署程序結束時,視窗頂端會顯示提示,要求您確認部署應用程式的容器中的目錄。f96e9a814edb44f4.png

確認值已設為 /go/src/app,然後按 Enter 鍵接受值

  1. 等待偵錯工具完成部署。狀態列變為橘色,且輸出報表顯示 "Attached debugger to container "sample-app-dev-..." successfully 時,就代表作業已完成。」
  2. 在 Cloud Code 終端機中,將滑鼠遊標懸停在輸出的第一個網址 (http://localhost:8081) 上,然後在顯示的工具提示中選取「Open Web Preview」。網頁尚未完成載入作業,未如預期完成載入。
  3. 切換回現在顯示偵錯工具的 IDE。分頁中會顯示呼叫堆疊,以及該部分程式碼可用的變數。您可以展開「變數 - 本機」來查看目前的計數器變數值。
  4. 如要允許頁面繼續載入,請選取 [繼續]「Debug」視窗中的圖示 8f395391c4828528.png
  5. 偵錯完成後,只要按一下停止按鈕,即可終止所有執行中的執行緒。81d142a9e1a2c01b.png