本页面介绍了如何为 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 或 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
如需详细了解如何设置多个环境变量或转义特殊字符,请参阅设置多个环境变量。
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 或 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:以英文逗号分隔的变量名称和值列表
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 文档: