部署 Cloud Run 函式 (第 1 代)
本指南說明如何從原始碼部署 Cloud Run 函式。
部署程序會使用您的原始碼和設定,建構可執行的映像檔,Cloud Run 函式會自動管理該映像檔,以便處理函式收到的要求。
部署作業基本設定
部署 Cloud Run 函式的使用者必須具備 Cloud Run 函式開發人員 IAM 角色,或具備相同權限的角色。另請參閱部署作業的其他設定。
選取分頁即可查看使用 gcloud CLI 或 Google Cloud 主控台部署函式的操作說明。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用
gcloud functions deploy
指令部署函式:gcloud functions deploy YOUR_FUNCTION_NAME \ [--gen2] \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS
第一個引數
YOUR_FUNCTION_NAME
是已部署函式的名稱。函式名稱開頭必須為英文字母,後面最多可接 62 個英文字母、數字、連字號或底線,且結尾必須為英文字母或數字。--gen2
旗標會指定要部署至 Cloud Run 函式。自 2024 年 9 月起,這將成為預設值。如要部署至第 1 代,請使用--no-gen2
。--runtime
標記會指定函式使用的語言執行階段。Cloud Run 函式支援多個執行階段,詳情請參閱「執行階段」。--source
標記會指定函式原始碼的位置。詳情請參閱下列各節:--entry-point
標記會指定原始碼中函式的進入點。這是函式執行時會執行的程式碼。此標記的值必須是來源程式碼中存在的函式名稱或完整類別名稱。詳情請參閱「函式進入點」。如要為函式指定觸發事件,您必須根據要使用的觸發事件,使用額外的標記 (如上方所示的
TRIGGER_FLAGS
):
觸發旗標 觸發條件說明 --trigger-http
透過 HTTP(S) 要求觸發函式。詳情請參閱「HTTP 觸發事件」。 --trigger-topic=YOUR_PUBSUB_TOPIC
當訊息發布至指定的 Pub/Sub 主題時,觸發函式。詳情請參閱 Pub/Sub 觸發事件。 --trigger-bucket=YOUR_STORAGE_BUCKET
在指定的 Cloud Storage 值區中建立或覆寫物件時觸發函式。詳情請參閱「 Cloud Storage 觸發事件」。 --trigger-event=EVENT_TYPE
[--trigger-resource=RESOURCE]在發生指定事件時觸發函式。某些事件類型需要指定資源。詳情請參閱「 Cloud Run 函式 (第 1 代) 支援的觸發事件」。 如需部署指令及其標記的完整參考資料,請參閱
gcloud functions deploy
說明文件。如需部署指令範例,請參閱指令列範例。
主控台
前往 Google Cloud 控制台的 Cloud Run 函式總覽頁面:
請確認您已選取要部署 Cloud Run 函式的 Google Cloud 專案。
按一下「建立函式」。
在「Environment」欄位中選取「1st gen」。
在「函式名稱」欄位中,輸入函式的名稱。函式名稱開頭必須為英文字母,後面最多可接 62 個英文字母、數字、連字號或底線,且結尾必須為英文字母或數字。
在「Region」(地區) 欄位中,選取要部署函式的地區。
在「觸發條件」部分,根據所選環境依序執行下列步驟:
- 在「HTTPS Authentication」部分中,視您是否要允許未經驗證的函式叫用,選取適當的選項。根據預設,您必須進行驗證。詳情請參閱「驗證呼叫」。
- 在「觸發條件類型」欄位中選取觸發條件類型。詳情請參閱「Cloud Run 函式 (第 1 代) 支援的觸發條件」。
- 為所選觸發條件類型填寫其他欄位。
- 按一下 [儲存]。
點選「下一步」前往「Code」步驟。
在「Runtime」欄位中,選取函式使用的語言執行階段。Cloud Run 函式支援多個執行階段,詳情請參閱「執行階段」一文。
在「進入點」欄位中,輸入原始碼中函式的進入點。這是在函式執行時會執行的程式碼。這個標記的值必須是原始碼中存在的函式名稱或完全限定類別名稱。詳情請參閱「函式進入點」。
在「Source code」欄位中,選取適當的選項,瞭解如何提供函式原始碼。詳情請參閱以下各節:
- 從本機電腦部署 (上傳 ZIP 檔案)
- 從 Cloud Storage 部署
- 透過 Google Cloud 控制台內嵌編輯器部署
按一下 [Deploy] (部署)。
部署作業完成後, Google Cloud 控制台的 Cloud Run 函式總覽頁面會顯示勾選的函式:
在佈建基礎架構的同時,函式的初始部署作業可能需要幾分鐘的時間。重新部署現有函式速度更快,且系統會自動將傳入流量遷移至最新版本。
從本機電腦部署
本節說明如何從本機電腦上的原始碼部署函式。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用
gcloud functions deploy
指令,按照上述部署操作說明操作。針對
--source
旗標,請指定函式原始碼根目錄的本機檔案系統路徑,請參閱「來源目錄結構」。如果省略這個旗標,系統會使用目前的工作目錄。您也可以選擇使用
--stage-bucket
標記,指定 Cloud Storage 值區,以便在部署時上傳原始碼。上傳原始碼時,Cloud Run 函式會透過
.gcloudignore
檔案排除不必要的檔案。
主控台
從 Cloud Storage 部署
本節說明如何從位於 Cloud Storage 值區的程式碼部署函式。來源碼必須以 ZIP 檔案格式封裝。
如要讓 Cloud Run 函式讀取 Cloud Storage 值區,您必須向執行部署作業的帳戶授予 storage.objects.get
權限。
如要進一步瞭解如何控管值區存取權,請參閱 Cloud Storage 說明文件中的「使用 IAM 權限」一節。
有了這項權限,您現在可以從 Cloud Storage 部署函式:
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用
gcloud functions deploy
指令,按照上述部署操作說明操作。針對
--source
標記,請指定以gs://
開頭的 Cloud Storage 路徑。路徑中的物件必須是包含函式來源程式碼的 ZIP 檔案。函式來源檔案必須位於 ZIP 檔案的根目錄,請參閱「來源目錄結構」。
主控台
透過 Google Cloud 主控台內嵌編輯器部署
本節說明如何使用內嵌編輯器,直接透過Google Cloud 主控台編寫及部署函式。
- 使用Google Cloud 主控台,按照上述部署操作說明操作,直到看到「Source code」欄位為止。
- 在「Source code」欄位中,選取「Inline Editor」。
- 請視需要使用提供的編輯器建立或編輯來源檔案,請參閱「來源目錄結構」。
- 左側窗格會列出來源檔案,並讓您建立、重新命名及刪除檔案。
- 右側窗格是文字編輯器,可用於編輯檔案內容。
- 按一下 [Deploy] (部署)。
指令列範例
本節將說明部署指令的部署情境範例。
如要進一步瞭解 Cloud Run 函式支援的不同觸發事件,請參閱「Cloud Run 函式觸發事件」。
本機原始碼中的 HTTP 函式
假設您有以下 HTTP 函式:
- 這個函式使用 Node.js 20。
- 原始碼位於目前工作目錄 (
.
) 中。 - 程式碼中的進入點名稱為
myHttpFunction
。
如要將函式部署至區域 us-central1
中的 Cloud Run 函式,名稱為 my-http-function
,請使用下列指令:
gcloud functions deploy my-http-function \
--no-gen2 \
--region=us-central1 \
--runtime=nodejs20 \
--source=. \
--entry-point=myHttpFunction \
--trigger-http
使用 Cloud Storage 中原始碼的 Pub/Sub 函式
假設您有以下事件導向函式:
- 這個函式會處理 Pub/Sub 訊息發布事件。
- 這個函式使用 Python 3.12。
- 原始碼位於 Cloud Storage 的
gs://my-bucket/my_function_source.zip
路徑中。 - 程式碼中的進入點名稱為
pubsub_handler
。
如要將函式部署至區域 europe-west1
中的 Cloud Run 函式,並讓函式由 Pub/Sub 主題 my-topic
上的訊息觸發,請使用下列指令:my-pubsub-function
gcloud functions deploy my-pubsub-function \
--no-gen2 \
--region=europe-west1 \
--runtime=python312 \
--source=gs://my-bucket/my_function_source.zip \
--entry-point=pubsub_handler \
--trigger-topic=my-topic
從本機來源程式碼取得 Cloud Storage 函式
假設您有以下事件導向函式:
- 這個函式會處理 Cloud Storage 物件刪除事件。
- 這個函式使用 Java 17。
- 原始碼位於本機的
./functions/storage-function
路徑中。 - 程式碼中的進入點名稱為
myproject.StorageFunction
。
如要將函式部署至區域 asia-northeast1
中的 Cloud Run 函式,並讓函式由 Cloud Storage bucket my-bucket
中的事件觸發,請使用下列指令:my-storage-function
gcloud functions deploy my-storage-function \
--no-gen2 \
--region=asia-northeast1 \
--runtime=java17 \
--source=./functions/storage-function \
--entry-point=myproject.StorageFunction \
--trigger-resource=gs://my-bucket \
--trigger-event=google.storage.object.delete
後續步驟
- 請參閱 Cloud Run 函式觸發事件的詳細說明。
- 瞭解 Cloud Run 函式建構程序。
- 探索其他 Cloud Run 函式的設定選項。
- 瞭解如何保護 Cloud Run 函式。
- 如需瞭解 Cloud Run 函式的特定用途範例,請參閱教學課程。