開始使用 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 服務帳戶憑證,因此能順暢地驗證 Datastore、Cloud Spanner、Cloud Translation API 和 Cloud Vision API 等大多數 Google Cloud Platform 服務。

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 為基礎的虛擬機器,搭載各種您需要的開發工具。提供永久的 5 GB 主目錄,而且在 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 後,您應會發現自己通過驗證,且專案已設為 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

  • 按一下 [建立函式]:

7adca9640ca2e5a6.png

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

795f1fedc0f039bb.png

  • 在「建立函式」中按一下底部的 [建立]部署函式:

b68c3647b771e6f9.png

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

函式部署期間,函式旁邊會有一個小型旋轉圖示。部署完畢後,旋轉圖示會呈現綠色勾號。如果有任何問題,系統會傳送紅色圖示通知給您,並附上記錄連結,方便您瞭解問題 (可能是程式碼中的問題)。

3ec684b1b4906657.png

大功告成!您的函式現在已上線,並準備好透過 HTTP 觸發。

4. 測試函式

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

74e310ee6663bb3c.png

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

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

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

a876def9cbf24a45.png

5. 查看函式記錄檔

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

8917a2bfa4fb9502.png

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

e97e6ec1fc17dfd7.png

以下是 記錄 記錄範例:

d91a00cf4457fa84.png

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

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

6. 清除資源

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

如要刪除函式,請直接前往總覽頁面,選取函式並按一下 [刪除] 。

4fe11e1b41b32ba2.png

7. 後續步驟

Cloud Functions 還有更多功能等著您!請參閱其他程式碼研究室、產品頁面和相關說明文件

您也應該查看下列內容: