部署 Cloud Run 函式 (第 1 代)

本指南說明如何從原始碼部署舊版第 1 代 Cloud Run 函式。如要建立新函式,請參閱 Cloud Run 的控制台快速入門導覽課程

部署程序會使用原始碼與配置設定建構可執行的映像檔,並交由 Cloud Run functions 自動管理,用於處理函式收到的要求。

部署作業基本設定

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

使用 gcloud CLI 部署函式,步驟如下:

  1. 使用 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 個英文字母、數字、連字號或底線,且結尾必須為字母或數字

從本機電腦部署

本節說明如何使用 gcloud CLI,將本機電腦上的原始碼部署為函式。

  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 指令進行部署。

    對於 --source 旗標,請指定函式原始碼根目錄的本機檔案系統路徑,詳見「來源目錄結構」。如果省略這個旗標,系統會使用目前的工作目錄。

    您也可以選擇使用 --stage-bucket 旗標,指定部署作業要將原始碼上傳至哪個 Cloud Storage bucket。

    上傳原始碼時,Cloud Run functions 會透過 .gcloudignore 檔案排除不必要的檔案。

  3. 從 Cloud Storage 部署

    本節說明如何使用 gcloud CLI,將 Cloud Storage bucket 中的原始碼部署為函式。原始碼必須封裝為 ZIP 檔案。

    您必須為執行部署作業的帳戶授予 storage.objects.get 權限,Cloud Run functions 才能從 Cloud Storage bucket 讀取資料。

    如要瞭解如何控管 bucket 存取權限,請參閱 Cloud Storage 說明文件中的「使用 IAM 權限」。

    取得這項權限後,即可從 Cloud Storage 部署函式:

    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 指令進行部署。

      針對 --source 旗標,請指定以 gs:// 開頭的 Cloud Storage 路徑。路徑下的物件必須是包含函式原始碼的 ZIP 檔案。函式來源檔案必須位於 ZIP 檔案的根目錄中,請參閱「來源目錄結構」。

    3. 指令列範例

      本節舉例說明一些部署作業情境適用的部署指令。

      如要進一步瞭解 Cloud Run 函式支援的不同觸發條件,請參閱「Cloud Run functions 觸發條件」。

      將本機原始碼部署為 HTTP 函式

      假設您有下列 HTTP 函式:

      • 這個函式使用 Node.js 22。
      • 原始碼位於目前工作目錄 (.)。
      • 程式碼中的進入點名稱為 myHttpFunction

      如要將函式部署至 Cloud Run functions,並在 us-central1 區域中命名為 my-http-function,請使用下列指令:

      gcloud functions deploy my-http-function \
        --no-gen2 \
        --region=us-central1 \
        --runtime=nodejs22 \
        --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

      如要將函式部署至 Cloud Run functions、在 europe-west1 區域中命名為 my-pubsub-function,並設定由 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 functions、在 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
      

      後續步驟