本页面介绍了如何为 Cloud Run 工作器池配置入口点命令和参数。
当 Cloud Run 启动容器时,它会运行映像的默认入口点命令和默认命令参数。如果要替换映像的默认入口点和命令参数,您可以使用容器配置中的 command 和 args 字段。command 字段指定容器运行的实际命令。args 字段指定传递给该命令的参数。
请注意,每个工作器池的每个容器最多可以有 1,000 个参数。
所需的角色
如需获得配置和部署 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 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限和管理访问权限。
配置入口点和参数
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
指定的容器命令和参数会替换默认映像 ENTRYPOINT 和 CMD。
您可以使用Google Cloud 控制台、Google Cloud CLI、YAML 或 Terraform 为 Cloud Run 工作器池设置入口点命令和参数:
控制台
- 在 Google Cloud 控制台中,前往 Cloud Run: 
- 从菜单中选择工作器池,然后点击部署容器以配置新的工作器池。如果您要配置现有工作器池,请点击该工作器池,然后点击修改和部署新的修订版本。 
- 如果您要配置新的工作器池,请填写初始工作器池页面,然后点击容器、卷、网络、安全性以展开工作器池配置页面。 
- 点击容器标签页。   - 如果您不想使用容器映像中定义的入口点命令,请指定您希望容器运行的命令。(可选)指定入口点命令的参数。
 
- 点击创建或部署。 
gcloud
如需更新现有服务的启动命令和参数,请执行以下操作:
gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N
替换以下内容:
- WORKER_POOL:工作器池的名称。
- COMMAND:启动容器的命令(如果您未使用默认命令)。
- ARG1:要发送到容器命令的参数。如有多个参数,请使用逗号分隔列表。
如需在新工作器池或现有工作器池的部署期间指定入口点和参数,请执行以下操作:
gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
将 IMAGE_URL 替换为对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest。
如果您想恢复入口点命令和参数的容器默认值,请提供空字符串,如下所示:
gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""
YAML
- 如果您要创建新的工作器池,请跳过此步骤。 如果您要更新现有工作器池,请下载其 YAML 配置: - gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml 
- 以下示例包含 YAML 配置: - apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER_NAME image: IMAGE_URL command: - COMMAND args: - ARG1 - ARG-N - 替换以下内容: - WORKER_POOL:Cloud Run 工作器池的名称。
- CONTAINER_NAME:容器的名称。
- IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
- COMMAND:启动容器的命令(如果您未使用默认命令)。
- ARG1:要发送到容器命令的参数。 如果您使用多个参数,请在各自的行中指定每个参数,例如 ARG-N。
 
- 使用以下命令创建或更新工作器池: - gcloud beta run worker-pools replace workerpool.yaml 
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"
  launch_stage = "BETA"
  template {
    containers {
      image = "IMAGE_URL"
      command = ["COMMAND"]
      args = ["ARG1", "ARG2"]
    }
  }
}
替换以下内容:
- WORKER_POOL:工作器池的名称。
- REGION: Google Cloud 区域,例如 europe-west1。
- IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest。
- COMMAND:启动容器的命令(如果您未使用默认命令)。
- ARG1、ARG2:您要发送到容器命令的参数。
为 sidecar 部署配置容器启动顺序
如需在边车部署中指定容器启动顺序,请使用容器依赖项功能。指定任何具有依赖项的容器,并列出它们所依赖的容器,以便这些容器首先启动。没有任何依赖项的容器始终首先并发启动。
如需成功使用此功能,您必须使用启动健康检查探测。启动探测使 Cloud Run 能够检查依赖容器的健康状况,确保其在启动下一个容器之前成功通过。如果不使用健康检查,即使容器依赖的容器无法启动,它们也会按指定的顺序启动。
请注意,工作器池没有默认的启动健康检查探测。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 指定启动顺序:
控制台
- 在 Google Cloud 控制台中,前往 Cloud Run 页面: - 从菜单中选择工作器池。
- 对于现有工作器池,请点击列表中的工作器池,然后选择修改和部署新的修订版本以显示修订版本部署表单。
- 对于新的工作器池,请点击部署容器以显示创建工作器池表单。
 
- 对于新工作器池,请指定工作器池名称、入站流量容器网址、CPU 分配、入站流量控制和身份验证。在容器、卷、网络、安全性标签页中,执行以下操作: - 配置 Ingress 容器。
- 如需添加要部署的每个其他容器,请点击添加容器。
- 对于除 Ingress 容器之外的所有容器,请配置启动健康检查。
- 如果某个容器需要在某些其他容器之后启动,请在容器启动顺序菜单中选择这些容器。
 
- 对于现有工作器池,请按照以下步骤操作: - 对于除 Ingress 容器之外的所有容器,请配置启动健康检查。
- 每个容器都有自己的容器启动顺序菜单。如果某个容器需要先启动其他容器才能启动,请使用容器启动顺序菜单选择必须先启动的容器。
 
- 完成任何其他必需配置,然后点击创建(对于新工作器池)或部署(对于现有工作器池)。等待部署完成。 
gcloud
在使用 Google Cloud CLI 指定启动顺序之前,请配置启动健康检查。
- 
  
   
   
     
   
  
 
   
 
 
 
  
    
    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. 
- 如需将多个容器部署到具有指定启动顺序的服务,请运行以下命令: 
- WORKER_POOL:工作器池的名称。
- IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest。
- SIDECAR_IMAGE:对边车容器映像的引用。 - 如果要在部署命令中配置每个容器,请在 - container参数后面提供每个容器的配置。
- 如果您要创建新的工作器池,请跳过此步骤。 如果您要更新现有工作器池,请下载其 YAML 配置: - gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml 
- 以下示例包含 YAML 配置: - apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}' - 替换以下内容: - WORKER_POOL:Cloud Run 工作器池的名称。
- CONTAINER1:依赖于一个或多个容器的第一个容器的名称。您可以在 YAML 中设置容器名称;如果未指定名称,Cloud Run 会自动生成一个名称。
- CONTAINER2:必须在 CONTAINER1 之前启动的容器的名称。
- CONTAINER3:依赖于一个或多个容器的第二个容器的名称。
 - 在 YAML 代码段中显示的示例中,CONTAINER2 先启动,CONTAINER1 然后启动,CONTAINER3 最后启动。 
- 使用以下命令创建或更新工作器池: - gcloud beta run worker-pools replace workerpool.yaml 
gcloud beta run worker-pools deploy WORKER_POOL \ --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE' --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME
替换以下内容:
YAML
查看工作器池的容器配置
- 在 Google Cloud 控制台中,前往 Cloud Run: 
- 点击工作器池以显示已部署的工作器池列表。 
- 点击要检查的工作器池,以显示其详细信息窗格。 
- 点击容器标签页以显示工作器池容器配置。