開始使用 Cloud Functions

1. 總覽

Cloud-Functions.png

有了 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 服務帳戶憑證,因此能順利地通過大多數 Google Cloud Platform 服務的驗證,例如 Datastore、Cloud Spanner、Cloud Translation API、Cloud Vision API 以及許多其他服務。

907ffb96feada611.png

事件和觸發條件

Cloud 事件是雲端環境內發生的項目。這些項目可能是對資料庫資料進行的變更、新增至儲存空間系統的檔案,或是正在建立的新虛擬機器執行個體。

無論您是否選擇回應,事件都會發生。您可以使用觸發條件建立事件的回應。觸發條件是一個宣告,表明您對特定事件或一組事件感興趣。將函式繫結至觸發條件,可讓您擷取事件並對事件採取行動。如要進一步瞭解如何建立觸發條件並連結至函式,請參閱「事件和觸發條件」。

無伺服器

Cloud Functions 為您省下管理伺服器、設定軟體、更新架構以及修補作業系統的工作。軟體與基礎架構則由 Google 全代管,因此,您只需新增程式碼即可。另外,系統會自動佈建資源,以回應事件。這表示,函式可從一天幾次叫用擴展到數百萬次叫用,而您無需處理任何工作。

用途

像輕量級 ETL 這種非同步工作負載,或像觸發應用程式建構作業這種雲端自動化項目,現在都不再需要所屬伺服器和開發人員,就可以進行連接。您只需要部署繫結至事件的 Cloud 函式就可以了。

Cloud Functions 精細與隨需提供的性質也使其成為輕量級 API 與 Webhook 的最佳環境選擇。此外,在您部署 HTTP 函式時,系統會自動佈建 HTTP 端點,因此設定作業不像其他服務一樣複雜。

在本實作實驗室中,您將瞭解如何使用 Google Cloud 控制台建立、部署及測試 Cloud 函式。您將:

  • 建立 Cloud 函式
  • 部署及測試函式
  • 查看記錄

2. 設定和需求

自修實驗室環境設定

  1. 登入 Cloud 控制台,建立新專案或重複使用現有專案。(如果沒有 Gmail 或 G Suite 帳戶,請先建立帳戶)。

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

請記住專案 ID,這是所有 Google Cloud 專案中不重複的名稱 (上述名稱已遭占用,因此不適用於您,抱歉!)。本程式碼研究室稍後會將其稱為 PROJECT_ID

  1. 接著,您必須在 Cloud 控制台中啟用帳單,才能使用 Google Cloud 資源。

完成本程式碼研究室的費用應該不高,甚至完全免費。請務必按照「清除」部分的指示操作,瞭解如何停用資源,避免在本教學課程結束後繼續產生帳單費用。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。

Google Cloud Shell

雖然可以透過筆電遠端操作 Google Cloud 和 Cloud Functions,但在本程式碼研究室中,我們將使用 Google Cloud Shell,這是 Cloud 中執行的指令列環境。

這部以 Debian 為基礎的虛擬機器,搭載各種您需要的開發工具,並提供永久的 5GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。也就是說,您只需要瀏覽器 (Chromebook 也可以) 就能完成本程式碼研究室。

  1. 如要從 Cloud 控制台啟用 Cloud Shell,只要按一下「啟用 Cloud Shell」 fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q 即可 (佈建並連線至環境的作業需要一些時間才能完成)。

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 at 10.13.43 PM.png

連至 Cloud Shell 後,您應該會看到驗證已完成,專案也已設為獲派的專案 ID 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 控制台資訊主頁中尋找:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell 也會預設設定部分環境變數,這些變數在您執行後續指令時可能很有用。

echo $GOOGLE_CLOUD_PROJECT

指令輸出

<PROJECT_ID>
  1. 最後,設定預設可用區和專案。
gcloud config set compute/zone us-central1-f

你可以選擇各種不同區域。詳情請參閱「地區和區域」。

3. 建立函式

在這個步驟中,您會透過控制台建立 Cloud 函式。

  • 在控制台中,依序點選「導覽選單」>「Cloud Functions」。

fe64222954f5f372.png

  • 按一下「CREATE FUNCTION」:

7adca9640ca2e5a6.png

  • 將函式命名為 GCFunction,並保留其他預設值:記憶體配置、HTTP 做為觸發條件、內嵌編輯器、預設執行階段和預設範例程式碼。

795f1fedc0f039bb.png

  • 在「建立函式」對話方塊中,按一下底部的「建立」來部署函式:

b68c3647b771e6f9.png

點選「建立」後,控制台會重新導向至 Cloud Functions 總覽頁面。

函式部署期間,函式旁邊會有一個小型旋轉圖示。部署完畢後,旋轉圖示會變成綠色勾號。如有任何問題,系統會顯示紅色圖示,並提供記錄檔的連結,方便您瞭解問題所在 (可能是程式碼有問題)。

3ec684b1b4906657.png

大功告成!函式現已上線,可透過 HTTP 觸發。

4. 測試函式

在「Cloud Functions 總覽」頁面中,顯示函式的選單,然後按一下「測試函式」

74e310ee6663bb3c.png

在「觸發事件」欄位中輸入下列文字,並在頭尾加上大括號 {},然後點選「測試函式」

在「輸出」欄位中,您應該會看到訊息「Success: Hello World!」。

在「記錄」欄位中,狀態碼 200 表示成功。請注意,記錄可能需要幾分鐘才會顯示。

a876def9cbf24a45.png

5. 查看函式記錄檔

按一下藍色箭頭,返回 Cloud Functions 總覽頁面:

8917a2bfa4fb9502.png

顯示函式的選單,然後按一下「查看記錄檔」

e97e6ec1fc17dfd7.png

以下是記錄檔記錄的範例:

d91a00cf4457fa84.png

請注意,您可以依函式和嚴重程度篩選記錄,並透過標籤或任意格式的文字進行搜尋。

應用程式已部署並測試完畢,您可以查看記錄檔。

6. 清除資源

由於這是無伺服器運算,因此您不需要清理資源:縮減至零表示成本也會縮減至零。因此,如果函式沒有任何流量,就不會產生費用。此外,每月前 200 萬次 Cloud Functions 叫用免費。詳情請參閱定價頁面

如要刪除函式,請前往總覽頁面,選取函式並按一下「刪除」:

4fe11e1b41b32ba2.png

7. 後續步驟

Cloud Functions 還有許多功能等你發掘!請參閱其他程式碼研究室和產品頁面,以及說明文件

此外,也建議您參閱下列文章: