使用 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 提供的不同指令和檢視畫面。在這個步驟中,您將熟悉基本介面。

從活動列查看探索工具檢視畫面

您可以從活動列存取多個使用者介面面板。如要快速瞭解各種檢視畫面,請按一下各個檢視畫面的圖示

API Explorer:

  • 按一下活動列中的「Cloud Code - Cloud APIs」圖示「Cloud Code」。如要進一步瞭解如何使用這個檢視畫面,請參閱說明文件

ded1723c524edd72.png

Secret Manager 探索器:

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

89f88159bcf79fa9.png

Cloud Run 探索器:

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

a1d583fd06413011.png

Kubernetes 探索器:

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

b2b8ab3975c5b0c9.png

查看狀態列指令

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

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

查看指令區塊面板的指令

您可透過指令面板使用其他指令。查看可存取的指令清單。

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

4. 部署至 Kubernetes 叢集

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

下列步驟會啟動原始碼的建構作業,然後執行測試。建構和測試程序需要幾分鐘才能完成。這些測試包括單元測試,以及檢查部署環境所設規則的驗證步驟。這個驗證步驟已設定完成,可確保您在開發環境中作業時,也能收到部署問題的警告。

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

建構和測試完成後,「輸出」分頁會顯示 Resource deployment/sample-app-dev status completed successfully,並列出兩個網址。

  1. 在 Cloud Code 終端機中,將游標懸停在輸出內容中的第一個網址 (http://localhost:8080) 上,然後在顯示的工具提示中選取「開啟網頁預覽」。

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

  1. 在瀏覽器中重新整理頁面。「Counter」旁的數字會增加,表示應用程式正在回應重新整理要求。

在瀏覽器中開啟這個頁面,以便在本地環境中進行變更時查看應用程式。

5. 運用變更的熱重載功能

在本節中,您要變更應用程式,並在應用程式於本機 Kubernetes 叢集中執行時查看變更。在「Kubernetes: Run/Debug」管道的輸出分頁中,除了應用程式網址外,輸出內容也會顯示「Watching for changes.」,表示已啟用監看模式。Cloud Code 處於監控模式時,會偵測存放區中儲存的任何變更,並自動重建及重新部署應用程式,套用最新變更。

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

Cloud Code 會偵測到應用程式的變更已儲存,並自動重新部署變更。「輸出」分頁會顯示「已啟動更新」。這項作業會在幾分鐘內完成。

這項自動重建功能類似於熱重載程式碼,後者適用於某些應用程式類型和架構。

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

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

無論使用哪種架構或元件,您都能透過這項設定自動重新載入。使用 Cloud Code 和 minikube 時,Kubernetes 中執行的任何項目都會具備這項熱重載程式碼功能。

6. 偵錯 Kubernetes 即時應用程式

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

在本偵錯範例中,我們將著重於網頁計數器的程式碼部分。

  1. 在 Cloud Shell 編輯器中開啟 main.go 檔案
  2. 在應用程式中設定中斷點,方法是點選第 82 行左側的數字 (if 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,偵錯工具現在應該會顯示在其中。程式碼會顯示在分頁中,您會看到呼叫堆疊,以及程式碼該部分可用的變數。展開「Variables - Local」,即可查看目前的計數器變數值。
  4. 如要允許頁面繼續載入,請在偵錯視窗中選取「繼續」圖示 8f395391c4828528.png
  5. 完成偵錯後,請按一下停止按鈕,終止每個執行中的執行緒。81d142a9e1a2c01b.png