開始使用 Cloud Run 函式 (HTTP)

1. 簡介

總覽

Cloud Run functions 是一種部署工作負載的新方式,可使用熟悉的 GCF 事件處理範例和函式簽章。Cloud Run functions 不會使用我們預先設定的建構程序和部署設定,而是讓您直接控管在 Cloud Run 上建立的基礎服務。

透過 Cloud Run functions,我們提供簡單的 Cloud Run 來源部署 UX,讓開發人員使用 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 將函式建構為可執行的容器型服務
  • 使用 –function 標記 (新) 將新服務的進入點設為要叫用的函式簽章
  • (選用) 使用 –no-allow-unauthenticated,禁止公開叫用函式

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 functions 說明文件

涵蓋內容

  • 如何部署由 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