1. 總覽
有了 Cloud Functions,您可以編寫簡單的單一用途函式,附加到您的雲端基礎架構和服務產生的事件。一旦監控的事件發生,就會觸發您的 Cloud 函式。您的程式碼會在全方位代管環境下執行,您不須佈建任何基礎架構,也不須管理任何伺服器。
Cloud Functions 目前能以 JavaScript、Python 或 Go 編寫。就 JavaScript 而言,這類程式碼會在 Google Cloud Platform 的 Node.js 環境中執行。只要在標準 Node.js 執行階段中執行 Cloud 函式,就能兼顧優異的可攜性和本機測試的便利性。
連線及擴充雲端服務
Cloud Functions 提供邏輯連接層,可讓您以撰寫程式碼的方式連結及擴充雲端服務。當您將檔案上傳至 Cloud Storage、記錄檔有所變更或收到來自 Cloud Pub/Sub 主題的訊息時,都能獲得相關資訊並進行回應。Cloud Functions 擴大現有的雲端服務,可讓您透過任意程式設計邏輯處理與日俱增的使用案例。Cloud Functions 可存取 Google 服務帳戶憑證,因此能順暢地驗證 Datastore、Cloud Spanner、Cloud Translation API 和 Cloud Vision API 等大多數 Google Cloud Platform 服務。
事件和觸發條件
Cloud 事件是雲端環境中發生的事件,例如對資料庫資料進行的變更、新增至儲存系統的檔案,或是正在建立新的虛擬機器執行個體等。
無論您是否選擇回應,事件都會發生。您可以針對設有觸發條件的事件建立回應。觸發條件是一個宣告,表明您對特定事件或一組事件感興趣。將函式繫結至觸發條件,可讓您擷取事件並對事件採取行動。如要進一步瞭解如何建立觸發條件並連結至函式,請參閱「事件」和「觸發條件」。
無伺服器
Cloud Functions 為您省下管理伺服器、設定軟體、更新架構以及修補作業系統的工作。軟體與基礎架構則由 Google 全代管,因此,您只需新增程式碼即可。另外,系統會自動佈建資源,以回應事件。這表示,函式可從一天幾次叫用擴展到數百萬次叫用,而您無需處理任何工作。
用途
像輕量級 ETL 這種非同步工作負載,或像觸發應用程式建構作業這種雲端自動化項目,現在都不再需要所屬伺服器和開發人員,就可以進行連接。您只需要部署繫結至事件的 Cloud 函式就可以了。
Cloud Functions 精細與隨需提供的性質也使其成為輕量級 API 與 Webhook 的最佳環境選擇。此外,在您部署 HTTP 函式時,自動佈建 HTTP 端點,意味著其設定與其他服務不同,不需進行複雜的設定。
透過這個實作研究室,您可以瞭解如何使用 Google Cloud 控制台來建立、部署及測試 Cloud 函式。您將需要:
- 建立 Cloud 函式
- 部署及測試函式
- 查看記錄
2. 設定和需求
自修環境設定
提醒您,專案 ID 是所有 Google Cloud 專案的專屬名稱 (已經有人使用上述名稱,很抱歉對您不符!)。稍後在本程式碼研究室中會稱為 PROJECT_ID
。
- 接下來,您需要在 Cloud 控制台中啟用計費功能,才能使用 Google Cloud 資源。
執行這個程式碼研究室並不會產生任何費用,如果有的話。請務必依照「清除所用資源」一節指示本節將說明如何關閉資源,這樣您就不會產生本教學課程結束後產生的費用。Google Cloud 的新使用者符合 $300 美元免費試用計畫的資格。
Google Cloud Shell
雖然 Google Cloud 和 Cloud Functions 可以從筆記型電腦遠端操作,但在本程式碼研究室中,我們會使用 Google Cloud Shell,這是一種在 Cloud 中執行的指令列環境。
這種以 Debian 為基礎的虛擬機器,搭載各種您需要的開發工具。提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作,大幅提高網路效能和驗證能力。換言之,本程式碼研究室只需要在 Chromebook 上運作即可。
- 如要透過 Cloud 控制台啟用 Cloud Shell,只要點選「啟用 Cloud Shell」 圖示 即可 (整個佈建作業只需幾分鐘的時間,操作完畢即可)。
連線至 Cloud Shell 後,您應會發現自己通過驗證,且專案已設為 PROJECT_ID
。
gcloud auth list
指令輸出
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
指令輸出
[core] project = <PROJECT_ID>
如因故未設定專案,請直接發出以下指令:
gcloud config set project <PROJECT_ID>
正在尋找 PROJECT_ID
嗎?查看您在設定步驟中使用的 ID,或在 Cloud 控制台資訊主頁查詢:
根據預設,Cloud Shell 也會設定一些環境變數,方便您之後執行指令。
echo $GOOGLE_CLOUD_PROJECT
指令輸出
<PROJECT_ID>
- 最後,進行預設可用區和專案設定。
gcloud config set compute/zone us-central1-f
您可以選擇各種不同的可用區。詳情請參閱「區域與可用區。
3. 建立函式
在這個步驟中,您會透過控制台建立 Cloud 函式。
- 在控制台中,按一下導覽選單 >Cloud Functions
- 按一下 [建立函式]:
- 將函式命名為
GCFunction
,並保留其他預設值:記憶體配置、HTTP 做為觸發條件、內嵌編輯器、預設執行階段,以及預設程式碼範例。
- 在「建立函式」中按一下底部的 [建立]部署函式:
點選「建立」之後,控制台會重新導向至「Cloud Functions 總覽」頁面。
函式部署期間,函式旁邊會有一個小型旋轉圖示。部署完畢後,旋轉圖示會呈現綠色勾號。如果有任何問題,系統會傳送紅色圖示通知給您,並附上記錄連結,方便您瞭解問題 (可能是程式碼中的問題)。
大功告成!您的函式現在已上線,並準備好透過 HTTP 觸發。
4. 測試函式
在「Cloud Functions 總覽」頁面中顯示函式的選單,然後按一下「測試函式」:
在「觸發事件」欄位中輸入下列文字,並在頭尾加上大括號 {},然後按一下「測試函式」。
在「Output」欄位中,您應該會看到訊息 Success:Hello World!
在「記錄檔」欄位中,狀態碼 200 表示成功。請注意,記錄檔可能需要幾分鐘才會顯示。
5. 查看函式記錄檔
按一下藍色箭頭,返回 Cloud Functions 總覽頁面:
顯示函式的選單,然後按一下「查看記錄檔」:
以下是 記錄 記錄範例:
請注意,您可以依函式和嚴重性篩選記錄,並透過標籤或任意形式文字進行搜尋。
應用程式已部署並測試完畢,您可以查看記錄檔。
6. 清除資源
這屬於無伺服器運算,因此您不需要清理資源,也就是將成本縮減至零。因此,如果您的函式沒有任何流量,就不會產生任何費用。此外,每月前 200 萬次 Cloud 函式叫用是免費的。詳情請參閱定價頁面。
如要刪除函式,請直接前往總覽頁面,選取函式並按一下 [刪除] 。
7. 後續步驟
Cloud Functions 還有更多功能等著您!請參閱其他程式碼研究室、產品頁面和相關說明文件。
您也應該查看下列內容:
- 呼叫 Cloud Functions (可用於函式叫用的觸發條件)
- 監控 Cloud Functions (記錄、錯誤回報等)
- ... 或更多「無伺服器類別」的程式碼研究室