【GCP 專欄】Cloud Functions 的介紹與應用

Google Cloud Functions – 在無伺服器的環境中打造並連結雲端服務

目前 Cloud Function 僅在 beta 測試階段,日後可能會因再修正而出現不相容的情況,因此暫不支援 SLA 。

 

什麼是 Google Cloud Function?

Google Cloud Function 是一個可以建置並連結多個雲端服務的無伺服器執行環境。透過 Cloud Functions,您可以將那些簡單且單一的功能附加在從您雲端基礎設施/服務送出的 events 上。當 event 發生的時候,Cloud Function 會被啟動,您的程式碼將被執行在一個完全代管的環境下,您不必額外設定基礎設施或是擔心要管理伺服器了。

Cloud Function 是透過 Javascript 程式語言所寫,並被執行在 GCP Node.js v6.11.1 的環境中。也因此您可以在所有標準的 Node.js 上執行 Cloud Function,這讓本地測試和可移植性也變得更加容易。

連結並延展您的雲端服務

Cloud Function 提供了一層邏輯的連接層,讓您可以透過寫 code 去連結並延展您的雲端服務,像是當檔案上傳到 Cloud Storage、log 更改、在 Cloud Pub / Sub 上的訊息。 Cloud Function 增強了既有的雲端服務,並允許您使用任意編程邏輯來處理越來越多的案例。

Cloud Function 有 Google Service Account 的憑證,也因此能通過 GCP 上許多服務的驗證,像是 Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API 等服務。除此之外,許多 Node.js client libraries 支援 Cloud Function,這些都再再簡化了整合功能。

Events 和 Triggers

Cloud Events 指的是那些發生在您雲端環境的事件,像是修改 Database 裡面的資料、將檔案新增至存儲系統、建置一台新的 VM等等。

不論您有沒有要回應那些 Events,Events 皆會發生。若您對特定 Events 感興趣,您可以選擇回應,這樣的行為稱之為 Trigger。您可以透過將 Function 綁定在 Trigger 上來採集 Event 並對其採取行動。想瞭解更多如何創建 Triggers 並將其與 Function 做連結的資訊,請參考 Events and Triggers

無伺服器

Cloud Function 省去了您管理伺服器、配置軟體、更新框架、修補正在運作的伺服器的工作。Google 會負責管理所有軟體及基礎設施,所以您僅負責加上程式碼即可。此外,Google Function 能自動調配資源,這代表就算在一天之內不管這個 Function 被 call了幾次或是幾百萬次,您都不需多做額外的工作。

範例

有了 Cloud Function,現在很多功能將不再需要建置相關的伺服器,也可以省下許多研發人員的工作。舉例而言,像是非同步作業 (Ex. 輕量級 ETL)、雲端自動化 (Ex. 觸發應用程式構建),現在您只需將 Cloud Function 綁定在您指定的 Event 就完成了。

Cloud Function 因為具備 fine-grained 和 依用量自動配置資源 (On-demand)的特質,使其成為輕量級 API 和 webhook 的絕佳選項。此外,當您部署 HTTP Function 時,將會自動配置 HTTP 端點,代表著這不需要管理複雜的設定。更多常見 Cloud Function 案例,請參考下表:

 

案例 敘述
資料處理 / ETL 監聽並回應 Cloud Storage Event。像是檔案創建、修改或刪除,以及處理圖片、視頻轉碼、驗證/轉換數據,並從您的 Cloud Function 中調用網路上的服務等等。
webhook 透過簡單的 HTTP trigger,可以回應來自第三方系統的 Event,像是 GitHub、Slack、Stripe,或是任何可以發送 HTTP 請求的地方。
輕量級 APIs 透過能快速建構和即時擴展的輕耦合邏輯,去組合應用程式,您的 Functoin 可以透過驅動 Event 或透過 HTTP/S 直接調用。
行動裝置後端服務(Mobile Backend) 善用 Firebase( GCP 提供的後端平台),並用 Cloud Functions 撰寫 Mobile Backend。監聽並回應那些從 Firebase Analytics、Realtime Database、Authentication 和 Storage 中發出的 Event。
物聯網 即便有幾十萬台的設備要將資料傳輸到 Cloud Pub/Sub,Cloud Functions 能讓您以無伺服器的方式去處理、轉換、儲存資料。

(原文翻譯自:https://cloud.google.com/functions/docs/concepts/overview)

想了解更多 GCP 的內容以及 Cloud Functions 更深入的應用嗎?趕快聯絡 GCP 專門家了解更多資訊吧。

連絡我們