准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create HelloWorld HTTP Cloud Function
/ 50
Create Gopher HTTP Cloud Function
/ 50
Go 是開放原始碼程式設計語言,可以輕鬆建構簡單、可靠且有效率的軟體。Cloud Shell 已預先安裝 Go。
Cloud Run functions 是用來建構及連結雲端服務的無伺服器執行環境。有了 Cloud Run functions,即可編寫專屬用途的函式,並連結到雲端基礎架構和服務產生的事件。一旦監控的事件發生,就會觸發函式。程式碼會在 Cloud Run 的全代管環境中執行,因此您不須佈建任何基礎架構,也不必管理任何伺服器。
您可以使用支援的程式設計語言編寫 Cloud Run 函式。函式能在支援語言的標準執行階段環境中執行,可攜性和本機測試的便利度都大大提升。
在本實驗室中,您將使用 Go 語言自行建立 Cloud Run 函式,只要透過 HTTP 叫用此函式,就會顯示 Renee French 設計的 Go Gopher 圖片。
本實驗室假設您已熟悉 Go 語言,雖然課程中會提供 Go 程式碼的說明,但對於 Go 語言初學者來說,這類說明可能不夠詳細。
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
某些 Compute Engine 資源位於區域和可用區。「區域」是您可以執行資源的特定地理位置,每個區域中會有一或多個「可用區」。
請在 Cloud Shell 執行下列 gcloud 指令,設定實驗室的預設區域和可用區:
curl 指令,下載內含本實驗室程式碼的 ZIP 檔案:unzip 指令,解壓縮程式碼。這項操作會解壓縮一個目錄 (golang-samples-main),當中包含 cloud.google.com 的 Go 程式碼範例:gopher 目錄包含下列目錄和檔案:
在 Go 語言中,HTTP Cloud Run 函式會以 http.HandlerFunc 的形式編寫,這是 Go 標準程式庫中定義的介面。這個函式必須:
http.HandlerFunc 類型,即函式格式為 func(http.ResponseWriter, *http.Request)。請參閱「Writing Web Applications」(編寫網頁應用程式) 教學課程,深入瞭解如何以 Go 語言編寫完整網頁應用程式。舉例來說,以下是「Hello, world」函式:
golang-samples-main/functions/codelabs/gopher/hello.go 檔案。functions/codelabs/gopher 目錄中,您可以執行 gcloud functions deploy,部署函式名稱:這項作業可能需要 1 到 2 分鐘才能完成。
輸出內容:
點選「Check my progress」,確認目標已達成。
gcloud services enable cloudfunctions.googleapis.com 指令來啟用。gcloud 的目錄) 包含 .go 檔案。您可以執行 cd golang-samples/functions/codelabs/gopher 來變更目錄。HelloWorld,也就是您要部署的 Go 函式名稱。gcloud functions add-iam-policy-binding HelloWorld \
--member="allUsers" \
--role="roles/cloudfunctions.invoker" \
--region=
套用這項 IAM 政策繫結後,請執行先前的部署指令,重新部署函式。httpsTrigger 網址。內容應該會類似這樣:curl 指令,連至上一個輸出內容中的網址,測試 HelloWorld 函式:輸出內容:
您已成功編寫並部署 HTTP Cloud Run 函式!
現在,為了讓「Hello, world」函式更有趣,我們希望每次收到要求時都顯示 Gopher 圖片。
下列程式碼區塊示範如何達成此目標。您可以在 Cloud Shell 的 golang-samples-master/functions/codelabs/gopher/gopher.go 查看這段程式碼。
檔案開頭是套件宣告和註解。所有 Go 程式碼都寫在套件內,頂端會有類似的宣告。
import 程式碼區塊包含這個檔案所依附的其他套件清單。檔案其餘部分會使用這些套件的名稱來參照。舉例來說,如要使用 http 套件中的 ResponseWriter 類型,請寫入 http.ResponseWriter。
接著是 Gopher 函式宣告。
函式會先使用 os.Open 函式讀取 gophercolor.png 檔案 (請參閱程式碼範例)。
接著檢查讀取檔案時是否發生錯誤,這可能是因為檔案已毀損,或是上傳時不小心遺漏了檔案。
它會使用 io.Copy 將 gopher 圖片複製到 w,也就是 http.ResponseWriter 引數。寫入 w 的所有內容都會在 HTTP 回應中傳送。
如果寫入回覆時沒有發生錯誤,函式會正常傳回。
gcloud functions deploy 指令並加上函式名稱 Gopher,就能部署這個函式:系統詢問是否允許未經驗證就叫用新函式時,請輸入 Y。
前往上一個指令輸出內容中的函式網址,並測試函式。如果成功,就會在瀏覽器中看到 Gopher!
接下來我們要新增測試,確認函式持續運作。
點選「Check my progress」,確認目標已達成。
在 Go 語言中,HTTP Cloud Run 函式須使用標準程式庫的 testing 和 httptest 套件進行測試。您不必執行模擬器或透過其他模擬作業來測試函式,只要使用一般的 Go 程式碼即可。
以下是 Gopher 函式的測試範例:
func MyTest(t *testing.T)。這個函式必須可被引用,並接收 *testing.T 類型的一個引數。httptest 套件建立測試回應和要求值。cd 指令,切換至含有測試檔案的目錄,即可在本機執行測試:golang-samples-main/functions/codelabs/gopher 目錄中,執行 go test 指令:輸出內容:
gopher.go 和 gopher_test.go 檔案所在的目錄 (golang-samples-main/functions/codelabs/gopher)?接著,您將建立二進位檔 (Go 語言的 package main) 並於本機執行函式,然後在瀏覽器中測試。
如要在本機執行 HTTP 函式,請建立 HTTP 伺服器,並將函式註冊為處理常式。請參閱「Writing Web Applications」(編寫網頁應用程式) 教學課程,深入瞭解如何以 Go 語言編寫完整網頁應用程式。
您可以在函式的子目錄中,為函式編寫 HTTP 伺服器。
依 Go 語言慣例,請將該目錄命名為 cmd,並在當中建立 main.go 檔案。
package main 做為套件。main 套件會建構為可執行的二進位檔。go.mod 檔案中的 module 行,匯入 github.com/GoogleCloudPlatform/golang-samples/functions/codelabs/gopher。編寫自己的函式時,您可以隨意命名模組。func main() 是二進位檔的進入點,會將 gopher.Gopher 函式註冊為 HTTP 處理常式,然後使用 http.ListenAndServe 啟動伺服器。輸出內容:
由於函式會從目前的工作目錄載入 gophercolor.png 圖片,因此您必須從 gophercolor.png 檔案所在的目錄啟動二進位檔。-o start 旗標表示將輸出的二進位檔命名為 start。./cmd 表示要建構位於 cmd 目錄中的二進位檔。
現在請使用 Cloud Shell 網頁預覽功能,在瀏覽器中測試伺服器。
8080。接著 Cloud Shell 就會在新的瀏覽器視窗中,開啟相關 Proxy 服務的預覽網址。網頁預覽功能會限制存取權,只有在您的使用者帳戶透過 HTTPS 連線時才能存取。
如果一切運作正常,應該就會看到 Go Gopher!
gopher.go 和 gopher_test.go 檔案所在的目錄 (golang-samples-main/functions/codelabs/gopher)?go build -o start ./cmd 指令來建構伺服器,然後執行 ./start 指令來啟動。畫面上應該會顯示 Listening on localhost:8080。8080。結束本實驗室時,所用資源會全數刪除。使用自己的環境時,請務必移除額外資源來節省成本,當個優質的雲端使用者。
按下 CTRL+C,停止提供網址。
測試完 Cloud Run 函式後,請執行 gcloud 指令來刪除函式:
您也能透過控制台刪除函式。
您已瞭解如何使用 Go 語言編寫 Cloud Run 函式了!在本實驗室中,您學會以 Go 語言編寫 HTTP Cloud Run 函式、測試函式,以及在本機執行函式。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 9 月 25 日
實驗室上次測試日期:2025 年 9 月 25 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验