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。