部署函式

本指南說明如何使用 gcloud functions 指令,從來源程式碼部署函式。如要瞭解如何使用 gcloud run 指令部署函式,請參閱「使用 gcloud CLI 部署 Cloud Run 函式」。

部署程序會使用您的原始碼和設定,建構可執行的映像檔,Cloud Run 函式會自動管理該映像檔,以便處理函式收到的要求。

部署作業基本設定

如要瞭解可部署的函式類型,請參閱「編寫 Cloud Run 函式」。

部署函式的使用者必須具備 Cloud Functions 開發人員 IAM 角色,或具備相同權限的角色。另請參閱部署作業的其他設定

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 使用 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 服務名稱會將底線替換為連字號,大寫字母則會轉換為小寫。舉例來說,Function_1 在 Cloud Run 中的名稱會是 function-1

    • --region 標記可指定要部署函式的區域。如需 Cloud Run 支援的地區清單,請參閱位置

    • --runtime 標記會指定函式使用的語言執行階段。如需支援的執行階段 ID 清單,請參閱「執行階段支援」。

    • --source 標記會指定函式原始碼的位置。

    • --entry-point 標記會指定原始碼中函式的進入點。這是函式執行時會執行的程式碼。此標記的值必須是來源程式碼中存在的函式名稱或完整類別名稱。詳情請參閱「函式進入點」。

    • 如要為函式指定觸發事件,您必須根據要使用的觸發事件,使用額外的標記 (如上方所示的 TRIGGER_FLAGS):

      觸發旗標 觸發條件說明
      --trigger-http 透過 HTTP(S) 要求觸發函式。
      --trigger-topic=YOUR_PUBSUB_TOPIC 當訊息發布至指定的 Pub/Sub 主題時,觸發函式。
      --trigger-bucket=YOUR_STORAGE_BUCKET 在指定的 Cloud Storage 值區中建立或覆寫物件時觸發函式。
      --trigger-event-filters=EVENTARC_EVENT_FILTERS 在符合指定篩選條件的事件發生時,使用 Eventarc 觸發函式。

      如需部署指令及其標記的完整參考資料,請參閱 gcloud functions deploy 說明文件。

      如要進一步瞭解 gcloud functions 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 管理。

如要進一步瞭解如何管理函式網路,包括如何轉送虛擬私有雲網路流量,請參閱「Cloud Run 網路最佳做法」。

瞭解如何在 Cloud Run 上部署 Cloud Run 函式

在 Cloud Run 上部署函式與本文件所述步驟類似,但有以下額外優點: