部署 Cloud Run 函式 (第 1 代)
本指南說明如何從原始碼部署 Cloud Run 函式。
部署程序會使用您的原始碼和配置設定建構可執行的映像檔,Cloud Run functions 會自動管理該映像檔,用於處理函式收到的要求。
部署作業基本設定
部署 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 functions 支援多種執行階段,詳情請參閱「執行階段」。--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 bucket 中建立或覆寫物件時,觸發函式。詳情請參閱「 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」(第 1 代)。
在「函式名稱」欄位中,輸入函式的名稱。函式名稱開頭必須為英文字母,後面最多可接 62 個英文字母、數字、連字號或底線,且結尾必須為字母或數字。
在「Region」(地區) 欄位中,選取要部署函式的地區。
在「觸發條件」部分,根據所選環境按照下列步驟操作:
- 在「HTTPS Authentication」(HTTPS 驗證) 部分中,視是否要允許未經驗證的函式叫用,選取適當的選項。預設情況下,系統會要求驗證。詳情請參閱「驗證以進行叫用」。
- 在「觸發條件類型」欄位中,選取觸發條件類型。詳情請參閱「Cloud Run 函式 (第 1 代) 支援的觸發條件」。
- 填寫所選觸發條件類型的其他欄位。
- 按一下 [儲存]。
點選「下一步」,前往「程式碼」步驟。
在「執行階段」欄位中,選取函式使用的語言執行階段。 Cloud Run functions 支援多種執行階段,詳情請參閱「執行階段」。
在「進入點」欄位中,輸入函式在原始碼中的進入點。這是函式執行時會執行的程式碼。這個旗標的值必須是原始碼中存在的函式名稱或完整類別名稱。詳情請參閱「函式進入點」。
在「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 bucket,做為部署作業的一部分。上傳原始碼時,Cloud Run functions 會透過
.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
。
如要將函式部署至 Cloud Run 函式,並在 us-central1
區域中命名為 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
中名為 my-pubsub-function
的 Cloud Run 函式,並讓函式由 Pub/Sub 主題 my-topic
上的訊息觸發,請使用下列指令:
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
。
如要將函式部署至 Cloud Run 函式,並在 asia-northeast1
區域中命名為 my-storage-function
,且讓函式由 Cloud Storage bucket my-bucket
中的事件觸發,請使用下列指令:
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 functions 的特定用途範例,請參閱教學課程。