開始使用 Cloud Run 函式 (HTTP)

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 來查看可用專案的清單。