部署至 Cloud Run 函式

本頁說明如何使用 Cloud Build 將應用程式部署至 Cloud Run 函式。如果您是 Cloud Build 新手,請先參閱快速入門課程建構設定總覽

Cloud Run 函式是用來建構及連結雲端服務的無伺服器執行環境。有了 Cloud Run 函式,您可以編寫簡單的單一用途函式,並將其附加到雲端基礎架構和服務產生的事件。一旦監控的事件發生,就會觸發您的函式。如要進一步瞭解 Cloud Run 函式,請參閱 Cloud Run 函式說明文件

事前準備

  • 啟用 Cloud Run functions API:

    啟用 Cloud Run functions API

  • Cloud Run 函式開發人員角色授予 Cloud Build 服務帳戶:

    1. 開啟「Cloud Build Settings」頁面:

      開啟 Cloud Build 設定頁面

    2. Cloud Run 函式開發人員角色的狀態設為「已啟用」

  • 如要執行本頁中的 gcloud 指令,請安裝 Google Cloud CLI

  • 請準備好要建構及部署至 Cloud Run 函式的應用程式原始碼。原始碼必須儲存在 Cloud Source Repositories、GitHub 或 Bitbucket 等存放區中。

設定部署作業

Cloud Build 可讓您使用任何開放給大眾使用的容器映像檔執行工作。您可以在 Cloud Build 設定檔的建構 step 中指定映像檔,即可完成這項操作。

Cloud Run 函式提供 gcloud functions deploy 指令,可從包含函式程式碼的目錄部署函式。您可以將 cloud-sdk 映像檔設為設定檔中的建構步驟,以便在映像檔中叫用 gcloud 指令。系統會將傳送至這個建構步驟的引數直接傳送至 Google Cloud CLI,進而讓您在這個映像檔中執行任何 gcloud 指令。

如要將應用程式部署至 Cloud Run 函式,請按照下列步驟操作:

  1. 在專案根目錄中,建立名為 cloudbuild.yamlcloudbuild.jsonCloud Build 設定檔
  2. 在設定檔中:

    • 新增 name 欄位並指定 gcloud 建構步驟。
    • functions deploy 新增至 args 欄位,以便叫用 gcloud functions deploy 指令。如需瞭解可用的設定選項,請參閱 gcloud functions deploy 參考資料
    • --source=. 表示原始碼位於目前工作目錄中。

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    將上述設定檔中的預留位置值替換為以下內容:

    • FUNCTION_NAME 是您要部署的 Cloud Run 函式名稱。如果您要更新現有函式,此值必須與要更新的函式名稱相符。
    • FUNCTION_REGION 是您要部署 Cloud Run 函式的區域。如需支援地區的清單,請參閱 Cloud Run 函式位置
    • --trigger-http 是這個函式的觸發條件類型,在本例中為 HTTP 要求 (Webhook)。
    • RUNTIME 是用於執行函式的執行階段

    如要進一步瞭解如何使用 gcloud functions deploy,請參閱 Cloud Run functions 說明文件

  3. 使用先前步驟建立的設定檔啟動建構作業:

     gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    將上述設定檔中的預留位置值替換為以下內容:

    • CONFIG_FILE_PATH 是建構設定檔的路徑。
    • SOURCE_DIRECTORY 是原始碼的路徑或網址。
    • REGION支援的建構區域之一。

    如果您未在 gcloud builds submit 指令中指定 CONFIG_FILE_PATHSOURCE_DIRECTORY,Cloud Build 會假設設定檔和原始碼位於目前的工作目錄中。

持續部署

您可以建立 Cloud Build 觸發條件,自動將軟體部署至 Cloud Run 函式。您可以設定觸發條件,以便在每次更新原始碼時建構及部署映像檔。

如要自動部署至 Cloud Run 函式,請按照下列步驟操作:

  1. 在存放區根目錄中,新增設定檔,並加入叫用 gcloud functions deploy 指令的步驟:

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    將上述設定檔中的預留位置值替換為以下內容:

    • FUNCTION_NAME 是您要部署的 Cloud Run 函式名稱。如果您要更新現有函式,此值必須與要更新的函式名稱相符。
    • FUNCTION_REGION 是您要部署 Cloud Run 函式的區域。如需支援地區的清單,請參閱 Cloud Run 函式位置
    • --trigger-http 是這個函式的觸發條件類型,在本例中為 HTTP 要求 (Webhook)。
    • RUNTIME 是用於執行函式的執行階段
  2. 使用上一個步驟建立的設定檔建立建構觸發條件:

    1. 在 Google Cloud 控制台中開啟「Triggers」頁面:

      開啟「觸發條件」頁面

    2. 在頁面頂端的專案選取器下拉式選單中選取專案。

    3. 點選「建立觸發條件」

    4. 在「名稱」欄位中,輸入觸發事件的名稱。

    5. 在「區域」下方,選取觸發條件的區域

    6. 在「事件」下方,選取要啟動觸發條件的存放區事件。

    7. 在「Source」下方,選取存放區,以及啟動觸發條件的分支或標記名稱。如要進一步瞭解如何指定要自動建構的分支版本,請參閱「建立建構作業觸發條件」。

    8. 在「Configuration」(設定) 下方,選取「Cloud Build configuration file (YAML or JSON)」(Cloud Build 設定檔 (YAML 或 JSON))

    9. 在「Cloud Build 設定檔位置」欄位中,在 / 後面輸入 cloudbuild.yaml

    10. 按一下「建立」即可儲存自動建構觸發條件。

每次將新程式碼推送至存放區時,系統就會自動觸發 Cloud Run 函式的建構作業和部署作業。

如要進一步瞭解如何建立 Cloud Build 觸發條件,請參閱「建立及管理建構觸發條件」一文。

後續步驟