使用环境变量

你可以定义 环境变量 部署时的 Workflows。例如,您可以创建工作流 根据其所在的环境动态配置的 。或者,您也可以创建一个可重复用作模板的工作流, 根据单独维护的环境变量进行配置。

环境变量可设置为任意键和值字符串对, 供工作流在运行时访问它们存储在 Workflows 后端,范围限定为工作流执行作业,以及 在工作流执行期间不可更改。

所有环境变量是在部署工作流时绑定的,并且只能通过部署进行设置或更改。创建或更改环境 变量要求部署成功。如果部署因任何原因失败 对环境变量所做的任何更改都不会应用。

您可以使用 Google Cloud CLI

预留名称

为工作流定义的内置环境变量会预留给系统,不得设置。

请注意,为 Cloud Storage 存储分区定义环境变量时, Workflows:

说明
空 ('') 键不能为空字符串。
GOOGLE_ 键不能包含 GOOGLE_ 前缀。
WORKFLOWS_ 键不能包含 WORKFLOWS_ 前缀。

设置环境变量

您可以在部署新变量时定义新变量或替换现有变量, 工作流。如需进行额外的更改,请参阅本文档中的 请改为更新环境变量

控制台

  1. 在 Google Cloud 控制台中,转到 Workflows 页面:

    进入 Workflows

  2. Workflows 页面上,点击 Create

  3. 创建工作流页面上,填写相应字段以配置工作流定义。

  4. 环境变量(可选)部分中,点击添加变量

  5. 名称 1 字段中,指定变量名称。

  6. 值 1 字段中,指定变量值。

  7. 如需添加其他变量,请点击添加变量

  8. 点击下一步

  9. 定义工作流后,如需部署该工作流,请点击部署

gcloud

如需设置环境变量,请使用 --set-env-vars 标志:

gcloud workflows deploy WORKFLOW_NAME \
    --set-env-vars KEY1=VALUE1

替换以下内容:

  • WORKFLOW_NAME:工作流的 ID。
  • KEY1=VALUE1:环境变量名称及其 value;例如 MONTH=January

Terraform

要创建工作流,请使用 google_workflows_workflow 资源 并修改 main.tf 文件,如示例所示。如需更多信息 请参阅 使用 Terraform 创建工作流

使用 user_env_vars 参数将环境变量与 修改工作流。

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

设置多个环境变量

如需设置多个环境变量,请使用英文逗号分隔的列表:

gcloud workflows deploy WORKFLOW_NAME \
      --set-env-vars KEY1=VALUE1,KEY2=VALUE2

转义英文逗号字符

由于英文逗号字符 (,) 用于分隔环境变量,因此如果 您的变量值包含英文逗号,则必须指定其他分隔符 字符,例如 @

gcloud workflows deploy WORKFLOW_NAME \
      --set-env-vars ^@^KEY1=VALUE1,VALUE2,VALUE3@KEY2=VALUE2

将变量存储在文件中

要将变量存储在文件中(例如,存储在源代码控制系统下),请使用 YAML 文件和 --env-vars-file 标志:

gcloud workflows deploy WORKFLOW_NAME \
      --env-vars-file FILE_PATH

FILE_PATH 替换为本地 YAML 文件的路径 其中列出了环境变量的定义。请注意, 变量名称和值必须是字符串。所有现有环境变量 在添加新环境变量之前,Workflows 会移除它们 。

例如,YAML 文件的内容可能如下所示:

KEY1: "value1"
KEY2: "value2"

如需详细了解 deploy 命令,请参阅 gcloud workflows deploy

访问环境变量

要访问环境变量,请调用 sys.get_env() 函数, 表达式,将环境变量的名称作为参数传递。通过 环境变量的名称必须以字符串形式传递。

例如,以下工作流将环境值 将变量 KEY1 设置为名为 keyValue 的工作流变量,然后输出 值:

main:
  steps:
    - init:
        assign:
          - keyValue: ${sys.get_env("KEY1")}
    - returnResult:
        return: ${keyValue}

更新环境变量

您可以为现有工作流更新用户定义的环境变量。这个 这是一种非破坏性方法,它会更改或添加环境变量, 不会删除变量。

控制台

  1. 在 Google Cloud 控制台中,前往工作流页面。

    进入 Workflows

  2. 点击要更新的工作流的名称。

    随即会出现工作流详细信息页面。

  3. 如需修改现有环境变量,请执行以下任一操作:

    • 点击详情标签页。

      1. 环境变量旁边,点击 图标。
      2. 进行更改。
      3. 如需部署更新后的工作流,请点击保存
    • 点击 修改

      1. 环境变量(可选)部分中,将您的 更改。
      2. 如需部署更新后的工作流,请依次点击下一步部署

gcloud

如需更新变量,请使用 --update-env-vars 标志:

gcloud workflows deploy WORKFLOW_NAME \
    --update-env-vars KEY1=VALUE1

如需更新多个环境变量,请使用逗号分隔列表:

gcloud workflows deploy WORKFLOW_NAME \
    --update-env-vars KEY1=VALUE1,KEY2=VALUE2

删除环境变量

您可以删除现有工作流中用户定义的环境变量。

控制台

  1. 在 Google Cloud 控制台中,前往工作流页面。

    进入 Workflows

  2. 点击您要更新的工作流的名称。

    随即会出现工作流详细信息页面。

  3. 如需删除现有环境变量,请执行以下任一操作:

    • 点击详情标签页。

      1. 点击相应
      2. 在要删除的环境变量旁边,点击 图标。
      3. 如需部署更新后的工作流,请点击保存
    • 点击 修改

      1. 在要删除的环境变量旁边,点击 图标。
      2. 如需部署更新后的工作流,请点击下一步,然后点击部署

gcloud

如果要选择性地移除环境变量,请使用 --remove-env-vars 标志:

gcloud workflows deploy WORKFLOW_NAME \
    --remove-env-vars KEY1,KEY2

或者,您也可以使用 --clear-env-vars 标志清除所有先前设置的环境变量:

gcloud workflows deploy WORKFLOW_NAME \
    --clear-env-vars

最佳做法

按照最佳做法,我们建议您不要依赖或修改 环境变量。如果您修改环境 变量,可能会导致 可能产生的意外后果。

管理 Secret

环境变量可用于配置工作流,但不可使用 推荐使用这种方法来存储和使用数据库凭据等密钥 或 API 密钥。这些敏感值应与 源代码和环境变量,并且不会无意中发送到日志。

如需了解存储 Secret 方面的最佳实践,建议您查看Secret 管理最佳实践,并按照说明将 Secret Manager 与工作流搭配使用

命名规则

一般来说,我们建议环境变量键仅包含大写字母、数字和下划线 (_),并且不要以数字开头。请考虑为用户定义的环境变量添加前缀 唯一键,以避免与其他变量发生冲突。

大小限制

最多可以定义 20 个用户定义的环境变量。每个定义字符串 (KEY=value) 不得超过 4 KiB。

后续步骤