用 GCP 建立 Cloud Functions

用 GCP 建立 Cloud Functions
用 GCP 建立 Cloud Functions

圖片來源:Google Cloud Functions

本篇要解決的問題

之前寫了在 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」:

點擊導覽列中的 Cloud Functions
點擊導覽列中的 Cloud Functions

點擊後會出現一張小卡片介紹,我們點擊「建立函式」:

點擊建立函式
點擊建立函式

第一步要先填 Functions 的基本資訊,像是名稱及要部署在哪個地區,還有觸發條件:

填寫 Functions 資訊
填寫 Functions 資訊

觸發條件可參考〈Firebase Cloud Functions 基本使用筆記〉,本篇是寫用 GCP 建立的部份,就不再細寫。

這邊直接選用 HTTP 的方式觸發,為了之後方便測試,驗證的部份選第一個不用驗證也可以觸發(Allow unauthenticated invocations)。

都填完選完後按下「儲存」,接著按「下一步」。

下一步就跟我們用了 firebase init 後一樣,左邊會是有哪些資料夾,右邊則是檔案的預覽,在 index.js 的部份一樣會有一個預設的 helloWorld Functions:

預設的檔案及 Functions
預設的檔案及 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:

觸發函式的 URL
觸發函式的 URL

直接在瀏覽器上貼上網址,會看見預設 response 的 Hello World!。


刪除 Functions

刪除的部份 GCP 上比 Firbase 簡單,因為有介面可以操作。

在函式列表頁,在想要刪除的函式上,點擊右邊的三個點 icon,就會出現「刪除」的選項:

刪除 Function 的按鈕
刪除 Function 的按鈕

點擊後就會執行刪除的動作了。

Summary
用 GCP 建立 Cloud Functions
Article Name
用 GCP 建立 Cloud Functions
Description
本篇大綱:本篇要解決的問題。建立 Functions。測試 Functions。刪除 Functions。GCP 上也有建立 Cloud Functions 的服務,而且還有介面可以操作,對於建立、測試、刪除這些基本步驟,相較於 Firebase 要下命令,更為簡便。
Augustus
Let's Write
Let's Write
https://letswrite.tw/wp-content/uploads/2020/08/logo_512.jpg
訂閱
通知
guest

0 Comments
最舊
最新
Inline Feedbacks
看所有留言