Cloud Functions 初探 - 主控台

概述

Google Cloud Functions 是一個用來建立以及連結雲端服務的無伺服器執行環境。 你可以利用 Cloud Functions 來寫簡單,單一用途的 functions, 這些 functions 被附加到雲端基礎設施以及服務的事件上。 當監聽的事件被觸發, Cloud Function 也會被觸發。 你的代碼將在一個完全自動化管理的環境中被執行。 你完全不需要提供任何的基礎設施或管理任何的伺服器。

Cloud Functions 由 Javascript 所編寫,並且執行在 Google Cloud Platform 的 Node.js 環境。 你可以讓你的 Cloud Functions 運行在任何的 Node.js 執行階段上,這不只攜帶輕便,而且更讓本地測試非常簡單。




前言

本篇主要是利用 Google 的 Qwiklab 平台學習的同時,做的一份學習筆記
為避免翻譯誤解,專業術語在本篇將不會被翻譯,保留原文




連結並且延伸雲端服務

Cloud Functions 提供一個邏輯的連結層,它可以讓你在上面寫代碼來連接並且延伸雲端服務。 監聽並且回應 Cloud Storage 的檔案上傳事件,一個紀錄改變事件,或是 Cloud Pub/Sub 的訊息觸發事件。 Cloud Functions 擴大已經存在的雲端服務,並且允許使用客制的程式邏輯來處理越來越多的使用情境。 Cloud Functions 擁有 Google Service Account credential 的存取權,因此可以無縫接軌大部分的 Google Cloud Platform 服務,像是 Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API, 以及很多很多其他的服務。 並且,很多的 Node.js client libraries 都有支援 Cloud Functions, 這更是簡化了這些服務之間的整合。


事件以及觸發 (Events and Triggers)

雲端事件是發生在雲端環境的事。 像是資料庫的資料有所改變,檔案被上傳到儲存區,或是一台新的虛擬機背建立。

不管你是否選擇回應,事件都會發生。 你可以使用 trigger 來建立對一個事件的回應。 Trigger 是一個宣告,對那些你有興趣的特定的或是一連串事件的宣告。 將一個 function 連結到 trigger 讓我們可以捕捉,並且隨著事件的發生有所動作。 更多有關建立 trigger 並且將它與 function 關聯的資訊,請參考 Events and Triggers


無伺服器

Cloud Functions 幫我們拿掉了這些工作,像是伺服器管理,軟體設置,框架更新,作業系統更新。 你只需要專注在代碼的部分,因為 Google 完全地幫你管理軟體以及基礎設施的部分。 再者,資源會隨著事件的回應自動地被提供。 這代表說,你完全不需要做任何事就可以讓一個 function 從一天幾次的調用,到一天好幾百萬次的調用。


使用情境

異步的工作量像是輕量化的 ETL, 或是雲端自動化像是應用被觸發而自動建立,不再需要獨立的伺服器以及開發者的維護。 你只要簡單的部署 Cloud Function 並且和你想要的事件做連結。

Cloud Functions 的這些細緻的,立即提供的特質讓它非常適合輕量化的 API 以及 webhooks。 再者,當你部署一個 HTTP Function,該 HTTP endpoints 將會自動地被提供,這代表你不再需要像其他服務的複雜設置。 下面的表格列出了一些額外的常用 Cloud Function 的使用情境:

使用情境 | 敘述
— |
Data Processing / ETL | 監聽並且回應 Cloud Storage 事件像是當一個檔案被建立,被改變,或是被移除了。 處理圖片,影片編譯,資料驗證及轉換,以及從 Cloud Functions 上觸發任何網路上的服務。
Webhooks | 經由簡單的 HTTP trigger, 回應那些來自第三方的事件,像是 GitHub, Slack, Stripe, 或是任何可以發 HTTP requests 的來源。
輕量化 APIs | 使用輕量化、不緊密相依、快速建立,以及立即可調整大小的邏輯來建構你的應用。 你的 functions 可以被事件驅動或者是直接通過 HTTP/S 觸發
可攜式後端 | 使用 Google 專為 App 開發者的可攜式平台, Firebase, 以及在 Cloud Functions 建構你自己的移動後端。 監聽以及回應來自於 Firebase Analytics, Realtime Database, Authentication, 以及 Storage 的事件。
IoT | 想像一個數以萬計的裝置串流資料到 Cloud Pub/Sub, 然後啟動 Cloud Functions 來處理,轉換,並且儲存資料。 Cloud Functions 讓你使用完全無伺服器的方式來做到這些事。

這個手把手的教程將會教你如何使用 Google Cloud 主控台來建立,部署,並且測試 Cloud Function

你將會做什麼?

  • 建立一個 cloud function
  • 部署並且測試這個 function
  • 檢視紀錄



設定及要求


在你按下 Start Lab 按鈕之前

詳讀所有的教學。Labs 是有時間限制的,而且你不可以停止時間倒數。倒數計時器在你按下 Start Lab 按鈕後開始倒數,上面顯示的時間為你還能使用 Cloud 資源的時間。

Qwiklabs 的手把手環境,讓你可以在真實環境中來操作進行 Qwiklabs 上提供的課程,而不是在一個模擬或是展示的環境。我們透過提供你一個全新的、暫時的帳號密碼,在計時器歸零之前,你可以用來登入並存取 Google Cloud Platform。

你需要什麼?

要完成這個 lab ,你需要:

  • 一個一般的網路瀏覽器(推薦 Chrome)
  • 完成這個 lab 的時間

備註: 如果你已經有你自己的個人 GCP 帳號或專案,請不要使用在這一個 lab

現在你已經開始你的 lab, 你將會登入 Google Cloud Shell 主控台,然後開啟命令列工具

如何開始你的 lab ,然後登入 Console?

  1. 按下 Start Lab 按鈕。如果你需要付費,會有一個彈出視窗來讓你選擇付費的方式。在左方你會看到一個面板,上面有暫時的帳號密碼,你必須使用這些帳號密碼在此次 lab

  1. 複製 username , 然後點擊 Open Google Console。 Lab 會開啟另外一個視窗,顯示選擇帳號的頁面

tip: 開啟一個全新的視窗,然後跟原本的頁面並排

  1. 選擇帳號頁面, 點擊 Use Another Account

  1. 登入頁面開啟,貼上之前複製的 username 以及 password ,然後貼上

重要:必須使用之前於 Connection Details 面板 取得的帳號密碼,不要使用你自己的 Qwiklabs 帳號密碼。 如果你有自己的 GCP 帳號,請不要用在這裡(避免產生費用)

  1. 點擊並通過接下來的頁面:
    • 接受terms以及conditions
    • 不要增加recovery optoinstwo factor authentication (因為這只是一個臨時帳號)
    • 不要註冊免費體驗

稍待一些時候, GCP 控制台將會在這個視窗開啟。

注意:按下左上方位於Google Cloud Platform 隔壁的 Navigation menu ,你可以瀏覽選單,裡面有一系列的 GCP 產品以及服務




建立一個 function

在這個步驟,你將使用主控台建立一個 cloud function

  1. 在主控台,點擊 Navigation menu > Cloud Functions

  1. 點擊 Create function

  1. Create function 對話框,輸入以下的值
    欄位 | 值

— |
Name | GCFunction
Memory allocated | Default
Trigger | HPPT trigger
Source code | Inline editor (使用預設被提供給 index.js 的 **helloWorld function 實作)

在下個章節部署 function




部署 function

還是在 Create function 對話框,在底部點擊 Create 來部署 function

在你點擊 Create 後,主控台會重導向 Cloud Functions Overview 頁面

當 function 正被部署時,旁邊的小圖案會顯示轉圈圈,當部署完畢,會變成一個打勾的圖案


測試進度

點擊 Check my progress 來確認目前的進度。如果你已經完成目前的進度,你將獲得一個評價分數。




測試 function

測試這個被部署上去的 function

  1. Cloud Functions Overview 頁面,從右邊三個小點的選單處點擊 Test function

  1. 在 Triggering event 欄位,在大括號 {} 之間輸入以下代碼並且點擊 Test the function
"message":"Hello World!"

output 欄位,你應該可以看到一段訊息 Success: Hello World!

Logs 欄位,一段狀態碼 200 顯示成功。 (紀錄出現可能會需要幾分鐘的時間)




View logs (檢視紀錄)

從 Cloud Functions Overview 頁面檢視紀錄

  1. 點擊藍色箭頭來回到 Cloud Functions Overview 頁面

  2. Cloud Functions Overview 頁面,從右邊三個小點的選單處點擊 View logs

紀錄歷史範例如下:

你的應用已經被部署,被測試,而且你已經可以檢視它的紀錄




測試你的理解

下面有多重選擇的問題來鞏固你對本教程概念的理解,盡你所能的回答吧:

  • true
  • HTTP




恭喜

你已經完成本教程

利用 Let's Encrypt 來自動簽署並更新 SSL 憑證 (wildcard) Cloud Functions 上的監控與紀錄

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×