您可以在部署时为工作流定义环境变量。例如,您可以创建一个根据部署到哪个环境而动态配置的工作流。或者,您可以创建一个可用作模板重复使用的工作流,并根据单独维护的环境变量进行配置。
环境变量可设置为任意键值对字符串,并且可供工作流在运行时访问。它们存储在 Workflows 后端,作用域限定为工作流执行,并且在工作流执行期间不可变。
所有环境变量是在部署工作流时绑定的,并且只能通过部署进行设置或更改。若要创建或更改环境变量,必须成功部署 Cloud Functions 函数。如果部署因任何原因失败,对环境变量进行的任何更改都不会应用。
您可以使用 Google Cloud CLI 添加、更新或移除用户定义的环境变量。
预留名称
为 Workflows 定义的内置环境变量会预留给系统,不得设置。
请注意,在为 Workflows 定义环境变量时,您不能使用以下内容:
键 | 说明 |
---|---|
空 ('' ) |
键不能是空字符串。 |
GOOGLE_ |
键不能包含 GOOGLE_ 前缀。 |
WORKFLOWS_ |
键不能包含 WORKFLOWS_ 前缀。 |
设置环境变量
您可以在部署工作流时定义新变量或替换现有变量。如需进行增补性更改,请改为参阅本文档中的更新环境变量。
控制台
在 Google Cloud 控制台中,转到 Workflows 页面:
在工作流页面上,点击
创建。在创建工作流页面上,填写相应字段以配置工作流定义。
在环境变量(可选)部分中,点击添加变量。
在名称 1 字段中,指定变量名称。
在值 1 字段中,指定变量值。
如需添加其他变量,请点击添加变量。
点击下一步。
定义工作流后,如需部署该工作流,请点击部署。
gcloud
如需设置环境变量,请使用 --set-env-vars
标志:
gcloud workflows deploy WORKFLOW_NAME \ --set-env-vars KEY1=VALUE1
替换以下内容:
WORKFLOW_NAME
:工作流的 ID。KEY1=VALUE1
:环境变量名称及其值;例如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。