本頁面說明如何為 Cloud Run 作業設定進入點指令和引數。
Cloud Run 啟動容器時,會執行映像檔的預設進入點指令和預設指令引數。如要覆寫映像檔的預設進入點和指令引數,可以使用容器設定中的 command 和 args 欄位。command 欄位會指定容器執行的實際指令。args 欄位會指定傳遞至該指令的引數。
請注意,每個作業的每個容器最多可有 1000 個引數。
本頁說明如何為 Cloud Run 作業中的容器設定指令、引數和啟動順序。
必要的角色
如要取得設定 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 控制台、gcloud CLI、YAML 或 Terraform,設定工作的指令進入點和引數:
控制台
前往 Google Cloud 控制台的 Cloud Run 頁面:
從 Cloud Run 導覽選單中選取「作業」:
如要建立新工作,請按一下「Deploy container」(部署容器),填寫初始工作設定頁面。
如要設定現有工作,請選取該工作,然後按一下「查看及編輯工作設定」。
按一下「容器、連線、安全性」,展開工作屬性頁面。
指定容器要執行的指令 (如果不是容器中定義的指令)。
選用:指定進入點指令的引數。
按一下「建立」或「更新」。
gcloud
如要為新工作設定啟動指令和引數,請執行下列指令:
gcloud run jobs create JOB --image IMAGE_URL --command COMMAND --args ARG1,ARG_N
更改下列內容:
JOB:Cloud Run 工作名稱。IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/job:latest。COMMAND:如果未使用預設指令,容器啟動時要執行的指令。ARG1:傳送至容器指令的引數。如要使用多個引數,請以半形逗號分隔,例如--args="arg1", "arg2", "arg3"。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。
如要更新現有工作的指令和引數,請執行下列指令:
gcloud run jobs update JOB --command COMMAND --args ARG1,ARG_N
如要清除所有進入點指令和引數,請執行下列指令:
gcloud run jobs update JOB --command "" --args ""
YAML
如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB --format export > job.yaml
更新
args:和command屬性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL args: - ARG1' - ARG_N command: - COMMAND
更改下列內容:
JOB:Cloud Run 工作名稱。IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/job:latest。ARG1:傳送至容器指令的引數。您也可以視需要指定其他引數,但每個引數都必須另起一行。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。COMMAND:如果未使用預設指令,容器啟動時要執行的指令。
更新現有工作設定:
gcloud run jobs replace job.yaml
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
在 Terraform 設定的google_cloud_run_v2_job 資源中新增下列項目:resource "google_cloud_run_v2_job" "default" {
name = "JOB"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG_N"]
}
}
}
}
更改下列內容:
JOB:Cloud Run 工作名稱。REGION: Google Cloud 區域。例如:europe-west1。COMMAND:如果未使用預設指令,容器應從哪個指令開始。ARG1:傳送至容器指令的引數。視需要指定其他引數。如果引數含有半形逗號或特殊字元,請參閱「在引數中使用等號或半形逗號」。
在引數中使用等號或半形逗號
如果在引數中使用等號,請按照下列格式提供引數:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
如果引數使用半形逗號,請參閱設定環境變數,瞭解如何逸出這些字元。
設定目前使用的目錄
目前使用的目錄是容器執行指令和引數的位置。部署新服務或現有服務時,您可以為容器程序指定自訂目前使用的目錄。如未指定,系統會使用容器映像檔的預設工作目錄。如要將這個欄位重設為預設值,請傳遞空字串或移除該欄位。
您可以使用 gcloud CLI、YAML 或 Terraform 設定目前使用的目錄:
gcloud
如要更新現有工作的目前使用的目錄,請執行下列指令:
gcloud run jobs update JOB --workdir WORKING_DIR
更改下列內容:
JOB:Cloud Run 工作名稱。WORKING_DIR:容器目前使用的目錄。如未指定,系統會使用容器映像檔的預設值。如要將這個欄位重設為預設值,請傳遞空白字串""。
如要在建立工作時指定目前使用的目錄,請執行下列指令:
gcloud run jobs create JOB --image IMAGE_URL --workdir WORKING_DIR
更改下列內容:
JOB:Cloud Run 工作名稱。IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/job:latest。WORKING_DIR:容器目前使用的目錄。如未指定,系統會使用容器映像檔的預設值。如要將這個欄位重設為預設值,請傳遞空字串""。
YAML
如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB --format export > job.yaml
更新
workingDir:屬性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL workingDir: WORKING_DIR
更改下列內容:
JOB:Cloud Run 工作名稱。IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/job:latest。WORKING_DIR(選用):容器的工作目錄。如未指定,系統會使用容器執行階段的預設值,這可能會在容器映像檔中設定。
更新現有工作設定:
gcloud run jobs replace job.yaml
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
在 Terraform 設定的google_cloud_run_v2_job 資源中新增下列項目:resource "google_cloud_run_v2_job" "default" {
name = "JOB"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
working_dir = WORKING_DIR
}
}
}
}
更改下列內容:
JOB:Cloud Run 工作名稱。REGION: Google Cloud 區域。例如:europe-west1。WORKING_DIR(選用):容器的工作目錄。如未指定,系統會使用容器執行階段的預設值,這可能是在容器映像檔中設定。
設定 Sidecar 部署作業的容器啟動順序
如要在附屬應用程式部署作業中指定容器啟動順序,請使用容器依附元件功能。您可以指定具有依附元件的容器,並列出這些容器依附的容器。系統一律會先啟動沒有任何依附元件的容器,且會同時啟動。
您可以使用 Google Cloud 控制台、gcloud CLI 或 YAML 指定啟動順序:
控制台
前往 Google Cloud 控制台的 Cloud Run「Jobs」頁面:
如要建立新工作,請按照下列步驟操作:
- 按一下「Deploy container」(部署容器)。
- 指定工作名稱、工作容器網址、區域和工作數量。
- 按一下「容器、網路、安全性」展開該部分。
- 設定主要工作容器。
- 如要新增部署的每個邊車容器,請按一下「新增容器」。
- 如果容器依附於其他容器,請使用「容器啟動順序」選單,選取 Cloud Run 必須在目前容器之前啟動的容器。
如要設定現有工作,請按照下列步驟操作:
- 選取要更新的工作。
- 按一下「查看及編輯工作設定」。
- 按一下「容器、連線、安全性」展開該部分。
- 如果容器相依於其他容器,請使用「容器啟動順序」選單選取這些容器。
完成其他必要設定,然後按一下「建立」建立新工作,或按一下「更新」更新現有工作。等待部署完成。
gcloud
如要將多個容器部署至工作,並指定啟動順序,請執行下列指令:
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:Cloud Run 工作名稱。CONTAINER_1_NAME:主要工作容器的名稱。JOB_IMAGE:主要工作容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/job:latest。CONTAINER_2_NAME:Sidecar 容器的名稱,例如sidecar。SIDECAR_IMAGE:邊車容器映像檔的參照。如要在部署指令中設定每個容器,請在
container參數後提供每個容器的設定。
YAML
如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB --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
如果存在
job.yaml檔案,gcloud run jobs replace指令預設會使用該檔案。
查看容器設定
如要查看 Cloud Run 作業目前的容器設定,請使用 Google Cloud 控制台或 Google Cloud CLI:
控制台
前往 Google Cloud 控制台的 Cloud Run jobs 頁面:
按一下工作,開啟「工作詳細資料」頁面。
按一下「查看及編輯工作設定」。
在設定詳細資料中找出容器設定。
gcloud
執行下列指令:
gcloud run jobs describe JOB
在傳回的設定中找出容器設定。