設定每個執行個體的並行要求數量上限

Cloud Run 並行設定可讓您定義單一執行個體同時處理的要求數量上限。調整這個值有助於平衡要求輸送量、管理記憶體用量,以及盡可能降低成本。

如要瞭解並行對自動調度資源和執行個體行為的影響,請參閱「關於並行」。

必要的角色

如要取得設定及部署 Cloud Run 服務所需的權限,請要求管理員授予您下列 IAM 角色:

如果您要從原始碼部署服務或函式,您也必須在專案和 Cloud Build 服務帳戶中獲得額外角色。

如要查看與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 服務與Google Cloud API (例如 Cloud 用戶端程式庫) 互動,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。

設定各執行個體的並行要求數量上限

任何設定變更都會建立新的修訂版本。後續修訂版本也會自動套用這項設定,除非您明確更新設定。

如果是 Cloud Run 服務,您可以使用 Google Cloud 控制台、gcloud 指令列,或在建立新服務或部署新修訂版本時使用 .yaml 檔案,設定每個執行個體的最大並行要求數:

控制台

  1. 前往 Google Cloud 控制台的「Cloud Run」頁面:

    前往 Cloud Run。

  2. 從 Cloud Run 導覽選單中選取「服務」,然後點選「部署容器」,設定新服務。如要設定現有服務,請按一下該服務。

  3. 如要設定新服務,請填寫初始服務設定頁面,然後按一下「容器、網路、安全性」展開服務設定頁面。

  4. 如要設定現有服務,請按一下「Scaling」(縮放) 分頁標籤。

  5. 在「要求」部分,於「各執行個體的並行要求數量上限」欄位中,指定容器執行個體數量上限。

  6. 按一下「建立」,建立新服務。依序點選「查看差異並重新部署」和「部署變更」,即可更新現有服務。

gcloud

如要設定各執行個體的並行要求數量上限,請使用下列指令:

gcloud run services update SERVICE --concurrency CONCURRENCY

更改下列內容:

  • SERVICE:服務名稱。
  • CONCURRENCY:每個執行個體的並行要求數量上限。例如,下列指令會將並行要求數量上限設為 1:

    gcloud run services update SERVICE --concurrency 1

變更特定服務的每個執行個體並行要求數上限時,系統會在新修訂版本中擷取這項設定。

如要還原為每個執行個體的預設並行要求數量上限 (80),請使用下列指令:

gcloud run services update SERVICE --concurrency default

將 SERVICE 改成您要設定的服務名稱。

YAML

  1. 如果您要建立新服務,請略過這個步驟。如要更新現有服務,請下載其 YAML 設定:

    gcloud run services describe SERVICE --format export > service.yaml
  2. 更新 containerConcurrency 屬性:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containerConcurrency: CONCURRENCY

    更改下列內容:

    • SERVICE:Cloud Run 服務名稱
    • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest。如果使用 Artifact Registry,則必須先建立存放區 REPO_NAME。網址格式為 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG。
    • CONCURRENCY:每個執行個體的並行要求數量上限。
    • REVISION:新的修訂版本名稱,或刪除該名稱 (如有)。如果提供新的修訂版本名稱,必須符合下列條件:
      • 開頭為「SERVICE-」
      • 只能使用小寫英文字母、數字和 -
      • 結尾不是 -
      • 不超過 63 個字元
  3. 使用下列指令建立或更新服務:

    gcloud run services replace service.yaml

    gcloud run services replace 指令預設會使用 service.yaml 檔案 (如有)。

Terraform

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

在 Terraform 設定中,將下列內容新增至 google_cloud_run_v2_service 資源:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-concurrency"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    # Maximum concurrent requests
    max_instance_request_concurrency = 80
  }
}

將 80 替換為所需的並行要求數量上限。

查看並行設定

如要查看 Cloud Run 服務目前的並行設定,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Run 的「Services」(服務) 頁面:

    前往 Cloud Run。

  2. 按一下感興趣的服務,開啟「服務詳細資料」頁面。

  3. 按一下「Scaling」(資源調度) 分頁標籤,查看設定。

gcloud

  1. 使用下列指令:

    gcloud run services describe SERVICE
  2. 在傳回的設定中找出並行設定。