本篇要解決的問題
之前寫了在 Firebase 上建立 Cloud Functions,大部份都要用 command line 才能完成,這幾天在看 GCP 的一些基本功能教學,發現 GCP 上也有建立 Cloud Functions 的服務,而且還有介面可以操作,對於建立、測試、刪除這些基本步驟,相較於 Firebase 要下命令,更為簡便。
本篇就是用 GCP 來建立 Cloud Functions。主要在建立、測試、刪除上。
至於觸發條件及相關程式碼的部份,以及用 Firebase 建立 Cloud Functions 的部份,都寫在了這篇:Firebase Cloud Functions 基本使用筆記。
GCP 上的 Cloud Functions 服務一樣是收費的,也一樣有在一定額度內是免費的部份,請見他們的說明:Cloud Functons 定價。
建立 Functions
在 Google Cloud Platform 上建好專案,接著選側邊導覽列中的「Cloud Functions」:
點擊後會出現一張小卡片介紹,我們點擊「建立函式」:
第一步要先填 Functions 的基本資訊,像是名稱及要部署在哪個地區,還有觸發條件:
觸發條件可參考〈Firebase Cloud Functions 基本使用筆記〉,本篇是寫用 GCP 建立的部份,就不再細寫。
這邊直接選用 HTTP 的方式觸發,為了之後方便測試,驗證的部份選第一個不用驗證也可以觸發(Allow unauthenticated invocations)。
都填完選完後按下「儲存」,接著按「下一步」。
下一步就跟我們用了 firebase init 後一樣,左邊會是有哪些資料夾,右邊則是檔案的預覽,在 index.js 的部份一樣會有一個預設的 helloWorld
Functions:
修改完 index.js 的檔案後,按下「部署」就會開始部署,這邊一樣留著原本的 helloWorld 來部署。
觸發的程式碼部份一樣都寫在〈Firebase Cloud Functions 基本使用筆記〉這篇,這邊不再細寫。
測試 Functions
看到我們的函式旁打了勾勾後,代表部署成功,接著我們來測試一下,點擊三個點的 icon 後再點「測試函式」:
在觸發事件的部份要填入 JSON,就當作在呼 API 要傳入的 data 一樣,我們輸入 { "message": "Hello World!" }
後,按下「測試函式」,就會看見「輸出」的部份出現了「Hello World!」,這是因為在 index.js 中最後寫的是:
res.status(200).send(message);
會回傳我們的 message
。
最後在下面紀錄的部份,也會看到回應碼是 200
,代表成功。
點擊「觸發條件」的頁籤,也可以看到觸發的 URL:
直接在瀏覽器上貼上網址,會看見預設 response 的 Hello World!。
刪除 Functions
刪除的部份 GCP 上比 Firbase 簡單,因為有介面可以操作。
在函式列表頁,在想要刪除的函式上,點擊右邊的三個點 icon,就會出現「刪除」的選項:
點擊後就會執行刪除的動作了。