開始使用 Cloud Run 函式 (HTTP)

開始使用 Cloud Run 函式 (HTTP)

程式碼研究室簡介

subject上次更新時間:8月 23, 2024
account_circle作者:Google 員工

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