本頁面說明如何為 Cloud Run 作業設定進入點指令和引數。
Cloud Run 啟動容器時,會執行映像檔的預設進入點指令和預設指令引數。如要覆寫映像檔的預設進入點和指令引數,可以使用容器設定中的 command
和 args
欄位。command
欄位會指定容器執行的實際指令。args
欄位會指定傳遞至該指令的引數。
請注意,每個作業的容器最多可有 1000 個引數。
本頁說明如何為 Cloud Run 作業中的容器設定指令、引數和啟動順序。您可以透過Google Cloud 控制台、Google Cloud CLI 或 YAML 設定這些設定。
必要的角色
如要取得設定 Cloud Run 作業所需的權限,請要求管理員授予下列 IAM 角色:
-
Cloud Run 開發人員 (
roles/run.developer
) 在 Cloud Run 工作上 -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) 服務身分
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱 Cloud Run IAM 角色和 Cloud Run IAM 權限。如果 Cloud Run 作業與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱部署權限和管理存取權。
設定進入點和引數
如要設定工作的指令進入點和引數,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Cloud Run 作業頁面:
從選單中選取「工作」,然後按一下「部署容器」,填寫初始工作設定頁面。如要設定現有工作,請選取該工作,然後按一下「編輯」。
按一下「容器、磁碟區、連線與安全性」,展開工作屬性頁面。
按一下「一般」分頁標籤。
- 指定容器要執行的指令 (如果不是容器中定義的指令),並視需要指定進入點指令的引數。
按一下「建立」或「更新」。
gcloud
-
gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
取代
- JOB_NAME 改為您的工作名稱。
- COMMAND,並搭配容器要啟動的指令 (如果未使用預設指令)。
- ARG1,並將引數傳送至容器指令。如要使用多個引數,請以半形逗號分隔,例如
--args="arg1", "arg2", "arg3"
。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。 - IMAGE_URL,並參照容器映像檔,例如
us-docker.pkg.dev/cloudrun/container/job:latest
。
如要更新現有工作的指令和引數:
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB_NAME --format export > job.yaml
更新
args:
和command
屬性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - args: - 'ARG1' - 'ARG-N' command: - COMMAND image: IMAGE
取代
- COMMAND,並搭配容器要啟動的指令 (如果未使用預設指令)。
- ARG1,並將引數傳送至容器指令。您也可以視需要指定其他引數,但每個引數必須各占一行。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。
您也可以指定更多設定,例如環境變數或記憶體限制。
更新現有工作設定:
gcloud run jobs replace job.yaml
如要清除您設定的所有進入點指令和引數 (還原為容器預設值),請提供空字串,如下所示:
gcloud run jobs update JOB_NAME --command "" --args ""
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
在 Terraform 設定中,將下列內容新增至google_cloud_run_v2_job
資源:resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG-N"]
}
}
}
}
取代:
- JOB_NAME 改為您的 Cloud Run 工作名稱。
- REGION 替換成 Google Cloud 地區。例如:
europe-west1
。 - COMMAND,並搭配容器要啟動的指令 (如果您未使用預設指令)。
- ARG1,並將引數傳送至容器指令。視需要指定其他引數。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。
在引數中使用等號或逗號
如果引數中含有等號,請使用下列格式提供引數:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
如果引數使用半形逗號,請參閱設定環境變數,瞭解如何逸出這些引數。
查看容器設定
如要查看 Cloud Run 作業目前的容器設定,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Cloud Run 作業頁面:
按一下所需工作,開啟「工作詳細資料」頁面。
按一下「查看及編輯工作設定」。
在設定詳細資料中找出容器設定。
gcloud
使用下列指令:
gcloud run jobs describe JOB_NAME
在傳回的設定中找出容器設定。
設定 Sidecar 部署作業的容器啟動順序
如要在側車部署中指定容器啟動順序,請使用容器依附元件功能。您可以指定任何有依附元件的容器,並列出這些容器依附的容器。系統一律會先啟動沒有任何依附元件的容器,且會同時啟動。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 指定啟動順序:
控制台
前往 Google Cloud 控制台的 Cloud Run 頁面:
- 如要查看現有工作,請按一下「Jobs」(工作)。然後按一下清單中的工作,並選取「View and edit job configuration」(查看及編輯工作設定),即可顯示「Edit Job」(編輯工作) 表單。
- 如要建立新工作,請按一下「Deploy container」(部署容器),然後選取「Job」(工作),顯示「Create job」(建立工作) 表單。
如果是新工作,請指定工作名稱、工作容器網址、區域和工作數量。在「容器、磁碟區、網路與安全性」分頁中,執行下列操作:
- 設定主要工作容器。
- 如要新增部署的每個 Sidecar 容器,請按一下「新增容器」。
- 如果容器依附於其他容器,請使用「容器啟動順序」選單,選取 Cloud Run 必須在目前容器之前啟動的容器。
如果是現有工作,請針對每個容器執行下列步驟:
- 檢查「容器啟動順序」選單中列出的容器。
- 如果容器相依於其他容器,請使用「容器啟動順序」選單選取這些容器。
完成其他必要設定,然後按一下「建立」(新工作) 或「更新」(現有工作)。等待部署完成。
gcloud
-
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 beta run create JOB \ --container CONTAINER_1_NAME --image='JOB_IMAGE' \ --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME
取代:
- 將 JOB 替換成您要部署的工作名稱。您可以完全省略這個參數,這樣系統會提示您輸入工作名稱。
- CONTAINER_1_NAME,並為主要工作容器命名。
- JOB_IMAGE,並參照主要工作容器映像檔,例如
us-docker.pkg.dev/cloudrun/container/job:latest
。 - 將 CONTAINER_2_NAME 替換為 Sidecar 容器的名稱,例如
sidecar
。 - SIDECAR_IMAGE,並參照 Sidecar 容器映像檔。
如要在部署指令中設定每個容器,請在
container
參數後提供每個容器的設定。
YAML
如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB_NAME --format export > job.yaml
更新
container-dependencies
屬性:apiVersion: run.googleapis.com/v1 kind: Job metadata: annotations: run.googleapis.com/launch-stage: BETA name: JOB spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
取代
- CONTAINER1,其中包含依附於一或多個容器的第一個容器名稱。請注意,您可以在 YAML 中設定容器名稱,如果未指定名稱,Cloud Run 會自動產生名稱。
- CONTAINER2,這是必須在 CONTAINER1 之前啟動的容器名稱。
- CONTAINER3,其中包含依附於一或多個容器的第二個容器名稱。
在 YAML 程式碼片段所示的範例中,CONTAINER2 會先啟動,CONTAINER1 接著啟動,CONTAINER3 則最後啟動。
使用下列指令建立或更新作業:
gcloud run jobs replace job.yaml