部署函式
本指南說明如何使用 gcloud functions 指令,從原始碼部署函式。如要瞭解如何使用 gcloud run 指令部署函式,請參閱「使用 gcloud CLI 部署 Cloud Run 函式」。
部署程序會使用您的原始碼和配置設定建構可執行的映像檔,Cloud Run 函式會自動管理該映像檔,用於處理函式收到的要求。
部署作業基本設定
如要瞭解可部署的函式類型,請參閱「編寫 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 端點 URL。如果您採用此函式並部署到 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 管理。
如要進一步瞭解如何管理函式網路,包括如何轉送虛擬私有雲網路流量,請參閱「Cloud Run 網路最佳做法」。
瞭解如何在 Cloud Run 上部署 Cloud Run 函式
在 Cloud Run 上部署函式的步驟與這份文件所述的步驟類似,但有以下優點: