你可以定义 环境变量 部署时的 Workflows。例如,您可以创建工作流 根据其所在的环境动态配置的 。或者,您也可以创建一个可重复用作模板的工作流, 根据单独维护的环境变量进行配置。
环境变量可设置为任意键和值字符串对, 供工作流在运行时访问它们存储在 Workflows 后端,范围限定为工作流执行作业,以及 在工作流执行期间不可更改。
所有环境变量是在部署工作流时绑定的,并且只能通过部署进行设置或更改。创建或更改环境 变量要求部署成功。如果部署因任何原因失败 对环境变量所做的任何更改都不会应用。
您可以使用 Google Cloud CLI
预留名称
为工作流定义的内置环境变量会预留给系统,不得设置。
请注意,为 Cloud Storage 存储分区定义环境变量时, Workflows:
键 | 说明 |
---|---|
空 ('' ) |
键不能为空字符串。 |
GOOGLE_ |
键不能包含 GOOGLE_ 前缀。 |
WORKFLOWS_ |
键不能包含 WORKFLOWS_ 前缀。 |
设置环境变量
您可以在部署新变量时定义新变量或替换现有变量, 工作流。如需进行额外的更改,请参阅本文档中的 请改为更新环境变量。
控制台
在 Google Cloud 控制台中,转到 Workflows 页面:
在 Workflows 页面上,点击
Create。在创建工作流页面上,填写相应字段以配置工作流定义。
在环境变量(可选)部分中,点击添加变量。
在名称 1 字段中,指定变量名称。
在值 1 字段中,指定变量值。
如需添加其他变量,请点击添加变量。
点击下一步。
定义工作流后,如需部署该工作流,请点击部署。
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}
更新环境变量
您可以为现有工作流更新用户定义的环境变量。这个 这是一种非破坏性方法,它会更改或添加环境变量, 不会删除变量。
控制台
在 Google Cloud 控制台中,前往工作流页面。
点击要更新的工作流的名称。
随即会出现工作流详细信息页面。
如需修改现有环境变量,请执行以下任一操作:
点击详情标签页。
- 在环境变量旁边,点击 图标。
- 进行更改。
- 如需部署更新后的工作流,请点击保存。
点击
修改。- 在环境变量(可选)部分中,将您的 更改。
- 如需部署更新后的工作流,请依次点击下一步和部署。
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
删除环境变量
您可以删除现有工作流中用户定义的环境变量。
控制台
在 Google Cloud 控制台中,前往工作流页面。
点击您要更新的工作流的名称。
随即会出现工作流详细信息页面。
如需删除现有环境变量,请执行以下任一操作:
点击详情标签页。
- 点击相应 。
- 在要删除的环境变量旁边,点击 图标。
- 如需部署更新后的工作流,请点击保存。
点击
修改。- 在要删除的环境变量旁边,点击 图标。
- 如需部署更新后的工作流,请点击下一步,然后点击部署。
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。