部署函式
本指南說明如何使用 gcloud functions
指令,從原始碼部署函式。如要瞭解如何使用 gcloud run
指令部署函式,請參閱「使用 gcloud CLI 部署 Cloud Run 函式」。
部署程序會使用您的原始碼和配置設定建構可執行的映像檔,Cloud Run functions 會自動管理該映像檔,用於處理函式收到的要求。
部署作業基本設定
如要瞭解可部署的函式類型,請參閱「編寫 Cloud Run 函式」。
部署函式的使用者必須具備「Cloud Functions 開發人員」IAM 角色,或包含相同權限的角色。另請參閱部署作業的其他設定。
-
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 \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS
第一個引數
YOUR_FUNCTION_NAME
是已部署函式的名稱。函式名稱開頭必須為英文字母,後面最多可接 62 個英文字母、數字、連字號或底線,且結尾必須為字母或數字。為函式建立的 Cloud Run 服務名稱會將底線替換為連字號,並將大寫字母轉換為小寫字母。舉例來說,在 Cloud Run 中,Function_1
會命名為function-1
。--source
旗標會指定函式原始碼的位置。--entry-point
標記會指定原始碼中函式的進入點。這是函式執行時執行的程式碼。這個旗標的值必須是來源程式碼中存在的函式名稱或完整類別名稱。詳情請參閱「函式進入點」。如要為函式指定觸發條件,請視要使用的觸發條件,加入其他標記 (以上方
TRIGGER_FLAGS
代表)。觸發旗標 觸發條件說明 --trigger-http
使用 HTTP(S) 要求觸發函式。 --trigger-topic=YOUR_PUBSUB_TOPIC
當訊息發布至指定的 Pub/Sub 主題時,觸發函式。 --trigger-bucket=YOUR_STORAGE_BUCKET
在指定 Cloud Storage bucket 中建立或覆寫物件時,觸發函式。 --trigger-event-filters=EVENTARC_EVENT_FILTERS
當發生符合指定篩選條件的事件時,使用 Eventarc 觸發函式。 如需部署指令及其標記的完整參考資料,請參閱
gcloud functions deploy
說明文件。如要進一步瞭解
gcloud functions deploy
設定標記,請參閱 Cloud Run 說明文件。
- 您可以使用 Google Cloud 控制台和 gcloud CLI (
gcloud run deploy
)。 - 指定觸發條件的步驟略有不同。詳情請參閱「觸發條件和重試」和「函式觸發條件範例」。
- Cloud Run 提供更多設定選項:
部署作業順利完成後,Google Cloud 控制台的 Cloud Run 總覽頁面中,函式旁會顯示綠色勾號。
函式的初始部署作業可能需要幾分鐘的時間,因為系統會佈建基礎架構。重新部署現有函式速度更快,且傳入流量會自動遷移至最新版本。
HTTP 端點網址
使用 gcloud functions
指令或 Cloud Functions v2 API 建立函式時,函式預設會具有 cloudfunctions.net
HTTP 端點網址。如果您採用這個函式並部署到 Cloud Run,函式也會收到 run.app
HTTP 端點網址。不過,在 Cloud Run 中建立的函式不會有 cloudfunctions.net
HTTP 端點網址。函式的 cloudfunctions.net
網址和 run.app
網址行為完全相同。兩者可互換,並用於觸發函式。
Terraform 範例
如需使用 Terraform 部署函式的範例,請參閱 Terraform HTTP 範例和 Terraform Pub/Sub 範例。
設定網路
使用 Cloud Functions v2 API 建立的函式 (例如使用 gcloud functions
、REST API 或 Terraform) 可透過 Cloud Run Admin API 和 Cloud Functions v2 API 管理。
如要進一步瞭解如何管理函式網路,包括如何轉送 VPC 網路流量,請參閱「Cloud Run 網路最佳做法」。
瞭解如何在 Cloud Run 上部署 Cloud Run 函式
在 Cloud Run 上部署函式與本文所述步驟類似,但有以下優點: