1. 簡介
總覽
Cloud Run 函式可讓您使用熟悉的 GCF 事件模式和函式簽章來部署工作負載。Cloud Run 函式可讓您直接控管在 Cloud Run 建立的基礎服務,而不是使用我們專屬的建構程序和部署設定。
藉由 Cloud Run 函式,您可以輕鬆享有 Cloud Run 來源部署的簡單使用者體驗,讓開發人員使用 Cloud Run 設定,全面控管工作負載。
本程式碼研究室會在以下範例中使用 Nodejs 範例。不過,您也能以您選擇的語言使用 Cloud Functions (第 2 代) 程式碼範例:
課程內容
- 如何部署由 HTTP 要求觸發的 Cloud Run 函式
2. 設定環境變數並啟用 API
升級 gcloud CLI
首先,您必須安裝最新版本的 gcloud CLI。如要更新 CLI,請執行下列指令:
gcloud components update
設定環境變數
您可以設定將在本程式碼研究室中使用的環境變數。
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
啟用 API
開始使用本程式碼研究室之前,您必須先啟用多個 API。本程式碼研究室需要使用下列 API。您可以執行下列指令來啟用這些 API:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. 建立 HTTP 函式
首先,建立原始碼的目錄,並以 cd 指向該目錄。
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
接著,建立含有以下內容的 package.json
檔案:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
接著,建立含有以下內容的 index.js
檔案:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. 部署函式
現在,您可以執行下列指令來部署 Cloud Run 函式:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
這個指令使用 buildpacks 來將函式原始碼轉換為可用於實際工作環境的容器映像檔。
請注意下列事項:
- –source 旗標用於指示 Cloud Run 將函式建構為可執行的容器型服務
- 新服務的進入點是用於將新服務的進入點設為您要叫用的函式簽章
- (選用) 防止您的函式可公開叫用
5. 測試函式
部署作業完成後,您會看到服務網址。如要叫用函式,您必須傳送已驗證的要求,並使用身分權杖或具備 Cloud Run 叫用者角色的原則識別權杖,如下所示:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. 恭喜!
恭喜您完成本程式碼研究室!
建議您詳閱 Cloud Run 函式說明文件
涵蓋內容
- 如何部署由 HTTP 要求觸發的 Cloud Run 函式
7. 清除所用資源
為避免產生意外費用 (舉例來說,如果 Cloud Run 服務意外叫用次數超過免費方案的每月 Cloud Run 叫用分配數量),您可以刪除 Cloud Run 或刪除步驟 2 中建立的專案。
如要刪除 Cloud Run 函式,請前往 Cloud Run Cloud 控制台 (https://console.cloud.google.com/run),然後刪除 crf-http-codelab
服務。
如果選擇刪除整個專案,請前往 https://console.cloud.google.com/cloud-resource-manager,選取您在步驟 2 建立的專案,然後選擇「刪除」。如果刪除專案,您必須變更 Cloud SDK 中的專案。您可以執行 gcloud projects list
來查看可用專案的清單。