本页面介绍如何为 Cloud Run 作业配置入口点命令和参数。
当 Cloud Run 启动容器时,它会运行映像的默认入口点命令和默认命令参数。如果要替换映像的默认入口点和命令参数,您可以使用容器配置中的 command 和 args 字段。command 字段指定容器运行的实际命令。args 字段指定传递给该命令的参数。
请注意,每个作业的每个容器最多可以有 1,000 个参数。
本页面介绍如何在 Cloud Run 作业中为容器配置命令、参数和启动顺序。您可以通过Google Cloud 控制台、Google Cloud CLI 或 YAML 配置这些设置。
所需的角色
如需获得配置 Cloud Run 作业所需的权限,请让您的管理员为您授予以下 IAM 角色:
- 
  
  
    
      Cloud Run 作业的 Cloud Run Developer (roles/run.developer) 角色
- 
  
  
    
      服务身份的 Service Account User (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 
- 在返回的配置中找到容器设置。 
为边车部署配置容器启动顺序
如需在边车部署中指定容器启动顺序,请使用容器依赖项功能。您可以指定任何具有依赖项的容器,并列出它们所依赖的容器。没有任何依赖项的容器始终首先并发启动。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 指定启动顺序:
控制台
- 在 Google Cloud 控制台中,前往 Cloud Run 页面: - 对于现有作业,请点击作业。然后,在列表中点击相应作业,并选择查看和修改作业配置以显示修改作业表单。
- 对于新作业,请点击部署容器并选择作业以显示创建作业表单。
 
- 对于新作业,请指定作业名称、作业容器网址、区域和任务数量。在容器、卷、网络、安全性标签页中,执行以下操作: - 配置主作业容器。
- 如需添加要部署的每个边车容器,请点击添加容器。
- 如果某个容器依赖于其他容器,请使用容器启动顺序菜单选择 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 替换为对边车容器映像的引用。
 - 如果要在部署命令中配置每个容器,请在 - container参数后面提供每个容器的配置。
- 如果您要创建新的作业,请跳过此步骤。如果您要更新现有作业,请下载其 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