设置构建环境变量(源代码部署)

构建环境变量是键值对,可让您在从源代码进行部署时将配置信息传递给 Buildpack。例如,在构建时,您可能想要自定义编译器选项、指定构建时证书、配置参数,等等。

本页面介绍了如何设置构建时可用的构建环境变量,适用于从源代码部署 Cloud Run 服务函数的平台开发者。源代码部署 (--source) 支持构建环境变量 gcloud CLI 标志,容器映像部署 (--image) 则不支持。

您可以使用环境变量进行服务或函数配置,但我们不建议您将其用作存储数据库凭证或 API 密钥等 Secret 的方式。请将敏感值存储在源代码和环境变量以外的位置。为了安全地存储 Secret,我们建议使用 Secret Manager。如需配置访问 Secret Manager 中存储的 Secret 的服务,请参阅配置 Secret

准备工作

  • 启用 Cloud Run Admin API 和 Cloud Build API:

    gcloud services enable run.googleapis.com \
        cloudbuild.googleapis.com

    启用 Cloud Run Admin API 后,系统会自动创建 Compute Engine 默认服务账号。

所需的角色

您或您的管理员必须为部署者账号和 Cloud Build 服务账号授予以下 IAM 角色。

点击可查看部署者账号所需的角色

如需获得从来源进行构建和部署所需的权限,请让管理员向您授予以下 IAM 角色:

点击可查看 Cloud Build 服务账号需要的角色

除非您替换此行为,否则 Cloud Build 会自动使用 Compute Engine 默认服务账号作为默认 Cloud Build 服务账号来构建源代码和 Cloud Run 资源。为了让 Cloud Build 能够构建来源,请让管理员向项目的 Compute Engine 默认服务账号授予 Cloud Run Builder (roles/run.builder):

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/run.builder
  

PROJECT_NUMBER 替换为您的 Google Cloud项目编号,将 PROJECT_ID 替换为您的 Google Cloud项目 ID。如需详细了解如何查找项目 ID 和项目编号,请参阅创建和管理项目

向 Compute Engine 默认服务账号授予 Cloud Run Builder 角色需要几分钟时间才能传播

如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色Cloud Run IAM 权限。如果您的 Cloud Run 服务与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限管理访问权限

构建环境变量数量上限和限制

您最多可以定义 100 个构建环境变量,键和值的总大小限制为 64 KiB。

设置构建环境变量

您可以设置构建环境变量以建立新变量或完全替换现有构建变量。

gcloud

如需在从源代码部署服务时设置构建环境变量,请使用 --set-build-env-vars 标志:

gcloud run deploy SERVICE \
    --source . \
    --set-build-env-vars KEY1=VALUE1,KEY2=VALUE2

您需要进行如下替换:

  • SERVICE 替换为您的 Cloud Run 服务的名称。
  • KEY1=VALUE1,KEY2=VALUE2 替换为与允许您将配置信息传递给 Buildpack 的函数一起部署的变量名称及其值的逗号分隔列表。

如果您要部署函数,请将 --function 标志与源代码中的函数入口点一起添加。

更新构建环境变量

您可以更新现有服务的构建环境变量。这种方法没有破坏性,也就是说,它只会更改或添加构建环境变量,但不会删除构建环境变量。

gcloud

如需更新现有服务的构建环境变量,请使用 --update-build-env-vars 标志:

gcloud run deploy SERVICE \
    --source . \
    --update-build-env-vars KEY1=VALUE1,KEY2=VALUE2

如果您要部署函数,请将 --function 标志与源代码中的函数入口点一起添加。

删除构建环境变量

您可以删除现有服务的构建环境变量。

gcloud

如需移除现有服务的构建环境变量,请使用 --remove-build-env-vars 标志:

gcloud run deploy SERVICE \
    --source . \
    --remove-build-env-vars KEY1=VALUE1,KEY2=VALUE2

或者,您也可以为现有函数使用 --clear-build-env-vars 来清除构建环境变量:

gcloud run deploy SERVICE \
    --source . \
    --clear-build-env-vars KEY1=VALUE1,KEY2=VALUE2

如果您要部署函数,请将 --function 标志与源代码中的函数入口点一起添加。

使用构建环境变量文件

您可以将构建环境变量文件用于现有函数。

gcloud

如需通过文件设置构建环境变量,请使用 --build-env-vars-file 标志:

gcloud run deploy SERVICE \
    --source . \
    --build-env-vars-file FILE_NAME.yaml

替换 FILE_NAME.yaml,文件的内容应如下所示:

 KEY1: VALUE1
 KEY2: VALUE2

如果您要部署函数,请将 --function 标志与源代码中的函数入口点一起添加。