本页面介绍了如何为 Cloud Run 工作器池配置环境变量。
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
所需的角色
如需获得配置和部署 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 控制台、Google Cloud CLI、YAML 或 Terraform 为 Cloud Run 工作器池设置环境变量:
控制台
- 在 Google Cloud 控制台中,前往 Cloud Run: 
- 从菜单中选择工作器池,然后点击部署容器以配置新的工作器池。如果您要配置现有工作器池,请点击该工作器池,然后点击修改和部署新的修订版本。 
- 如果您要配置新的工作器池,请填写初始工作器池页面,然后点击容器、卷、网络、安全性以展开工作器池配置页面。 
- 点击容器标签页。   - 在“变量和 Secret”标签页中,点击添加变量以添加新的环境变量,然后在名称和值字段中指定要对变量使用的名称。如需详细了解如何设置多个环境变量或转义特殊字符,请参阅设置多个环境变量。
 
- 点击创建或部署。 
gcloud
如需在部署工作器池时指定环境变量,请使用 --set-env-vars 标志:
gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
替换以下内容:
- WORKER_POOL:工作器池的名称
- KEY1=VALUE1,KEY2=VALUE2:以英文逗号分隔的变量名称和值列表
- IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
如需详细了解如何设置多个环境变量或转义特殊字符,请参阅设置多个环境变量。
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: image: IMAGE_URL env: - name: NAME value: VALUE - name: NAME2 value: VALUE2 - 替换以下内容: - WORKER_POOL:Cloud Run 工作器池的名称。
- IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
- NAME 和 VALUE:环境变量的名称和值。
 
- 使用以下命令创建或更新工作器池: - 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"
      env {
        name  = "KEY1"
        value = "VALUE1"
      }
      env {
        name  = "KEY2"
        value = "VALUE2"
      }
    }
  }
}
替换以下内容:
- WORKER_POOL:工作器池的名称。
- REGION: Google Cloud 区域,例如 europe-west1
- IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
- KEY1 和 VALUE1:环境变量和值。(可选)根据需要添加更多的变量和值。
在容器中设置默认环境变量
您可以使用 Dockerfile 中的 ENV 语句设置环境变量的默认值:
ENV KEY1=VALUE1,KEY2=VALUE2
优先顺序:容器变量与工作器池变量
如果您在容器中设置默认环境变量,并在 Cloud Run 工作器池上设置具有相同名称的环境变量,则该工作器池上设置的值优先。
设置多个环境变量
您可以使用 .env 文件或 --set-env-vars 标志设置多个环境变量。
使用 .env 文件设置多个环境变量
控制台
- 在 Google Cloud 控制台中,前往 Cloud Run: 
- 从菜单中选择工作器池,然后点击部署容器以配置新的工作器池。如果您要配置现有工作器池,请点击该工作器池,然后点击修改和部署新的修订版本。 
- 如果您要配置新的工作器池,请填写初始工作器池页面,然后点击容器、卷、网络、安全性以展开工作器池配置页面。 
- 点击容器标签页。   - 在“变量和 Secret”标签页中,点击添加变量,然后将 .env文件的内容粘贴到名称字段中。Cloud Run 会自动填充值字段,并为.env文件中定义的每个键值对创建新变量。
 
- 在“变量和 Secret”标签页中,点击添加变量,然后将 
- 点击创建或部署。 
gcloud
如需从 .env 文件中指定多个环境变量,请运行以下命令:
gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --env-vars-file=ENV_FILE_PATH
替换以下内容:
- WORKER_POOL:工作器池的名称。
- IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
- ENV_FILE_PATH:.env文件的路径。
使用 --set-env-vars 标志设置多个环境变量
如果您有多个无法以 KEY1=VALUE1,KEY2=VALUE2 格式列出的环境变量,则可以多次重复使用 --set-env-vars 标志:
[...] --set-env-vars "KEY1=VALUE1" \ --set-env-vars "KEY2=VALUE2" \ --set-env-vars "KEY3=VALUE3"
转义英文逗号字符
由于英文逗号字符, 用于分隔环境变量,因此,如果您的环境变量包含英文逗号字符作为值,则您需要将这些分隔符进行转义,方法是指定其他分隔符(例如 @):
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."
更新环境变量
您可以更新现有工作器池的运行时环境变量。这种方法没有破坏性,也就是说,它只会更改或添加运行时环境变量,但不会删除这些变量。
您可以在 Google Cloud 控制台、Google Cloud CLI、YAML 或 Terraform 中更新环境变量:
控制台
- 在 Google Cloud 控制台中,前往 Cloud Run: 
- 从菜单中选择工作器池,然后点击要更新的工作器池,再点击修改和部署新的修订版本。 
- 点击容器、卷、网络、安全性以展开工作器池配置页面。 
- 点击变量和 Secret 标签页。   
- 找到要更新的环境变量,然后在名称和值字段中指定不同的变量名称或不同值。 
- 点击部署。 
gcloud
如需更新现有工作器池的环境变量,请使用 --update-env-vars 标志:
gcloud beta run worker-pools update WORKER_POOL --update-env-vars KEY1=VALUE1,KEY2=VALUE2
替换以下内容:
- WORKER_POOL:工作器池的名称
- KEY1=VALUE1,KEY2=VALUE2:以英文逗号分隔的变量名称和值列表
YAML
- 下载工作器池 YAML 配置: - gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml 
- 修改名称和值变量。 
- 使用以下命令更新工作器池: - gcloud beta run worker-pools replace workerpool.yaml 
Terraform
如需更新现有工作器池的环境变量,请打开与工作器池对应的 main.tf 文件,并修改名称和值变量。然后,运行相应命令以应用 Terraform 配置。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
删除环境变量
控制台
- 在 Google Cloud 控制台中,前往 Cloud Run: 
- 从菜单中选择工作器池,然后点击要更新的工作器池,再点击修改和部署新的修订版本。 
- 点击容器、卷、网络、安全性以展开工作器池配置页面。 
- 点击变量和 Secret 标签页。   
- 找到要删除的环境变量,然后点击值字段右侧的回收站图标以删除该环境变量。 
- 点击部署。 
gcloud
如需从现有工作器池中有选择地移除环境变量,请使用 --remove-env-vars 标志:
gcloud beta run worker-pools update WORKER_POOL --remove-env-vars KEY1,KEY2
替换以下内容:
- WORKER_POOL:工作器池的名称
- KEY1,KEY2:以英文逗号分隔的变量名称列表
或者,您也可以使用 --clear-env-vars 标志清除所有先前设置的环境变量:
gcloud beta run worker-pools update WORKER_POOL --clear-env-vars
将 WORKER_POOL 替换为工作器池的名称。
查看工作器池的环境变量配置
- 在 Google Cloud 控制台中,前往 Cloud Run: 
- 点击工作器池以显示已部署的工作器池列表。 
- 点击要检查的工作器池,以显示其详细信息窗格。 
- 点击容器标签页以显示工作器池容器配置。 
示例代码
如需查看展示如何访问代码中的环境变量的代码示例,请参阅最终用户身份验证教程中的使用 Secret Manager 处理敏感配置。
后续步骤
您可以使用环境变量来设置 buildpack 配置。如需了解特定语言的详细信息,请参阅适用于以下语言的 Buildpack 文档: