管理参数集
参数集是自动化服务台中可复用的变量集合。您可以将一组 Terraform 变量取值抽取为参数集,关联到模板、任务或资源栈,实现一处修改、全局生效。参数集支持通过 KMS 信封加密保护敏感值,API 和控制台均自动脱敏。
功能概述
参数集将 Terraform 变量取值从模板中独立出来,形成可复用的配置资源。参数集支持关联到模板、模板版本、任务和资源栈,适用于以下场景:
多任务共用同一组变量:所有部署任务共用同一份 region、VPC 网段、镜像 ID 等变量,修改一处即全局生效。
同模板不同环境:同一模板复用于不同环境(如生产环境和开发环境),通过关联不同参数集区分各环境的入参规格。
敏感入参加密存储:数据库密码、AccessKey、第三方 Token 等敏感值,可标记为保密参数,系统通过 KMS 信封加密链路存储。
仅在一次执行中使用的临时入参,建议直接在任务参数中填写,无需创建参数集。
前提条件
已创建需要关联参数集的模板或资源栈。
当前账号具备操作所需的 RAM 权限。
如需创建保密参数,请先在系统设置 > 加密配置中配置 KMS 密钥。未配置时创建保密参数将报错。
使用限制
限制项 | 默认值 | 说明 |
单个账号下参数集数量 | 100 | 可通过配额管理申请提升至 200 / 300 / 500 / 1000 / 1500。由资源栈导出创建的参数集不计入此配额。 |
单个参数集的参数数量 | 1000 | 不可调整。 |
单个资源可关联的参数集数量 | 5 | 硬编码上限,不可调整。如需更多,请将多个参数集合并为一个。 |
单次关联请求数量 | 1~5 | 超出范围将返回 InvalidParameter 错误。 |
参数类型 | 5 种 | 仅支持 string、number、bool、map(string)、list(string)。 |
参数集名称长度 | 2~128 字符 | 必须以字母、下划线或中文开头,允许使用字母、数字、中文、短划线(-)、下划线(_)、冒号(:)、点(.)。账号内唯一,不能以 aliyun、acs、alibaba、alicloud、oos 开头。 |
创建参数集
登录自动化服务台。
单击新建参数集。
在右侧滑出面板中,填写参数集名称(2~128 字符,账号内唯一)和可选的参数集描述(最多 1024 字符)。
添加参数行。每行填写名称、类型和取值。参数名称必须与模板中
variable "xxx" {}的变量名一致。(可选)如需批量录入,单击面板右上角自动导入,选择导入来源:
模板:从指定模板版本的
variable {}块批量导入变量定义。资源导出:从已有资源栈或任务的输出导入。
(可选)如某行参数为敏感值(如密码、Token),勾选设为保密值。系统将通过 KMS 信封加密存储该参数值。更多信息,请参见管理保密参数。
单击提交。
创建完成后,可在参数集管理列表中查看。
支持的参数类型
类型 | 控制台输入控件 | 取值示例 |
string | 单行文本框 |
|
number | 数字框 |
|
bool | 复选框 |
|
map(string) | 键值对编辑器 |
|
list(string) | 列表编辑器 |
|
模板中如有复杂类型(如 list(object)、set(string)),可使用 jsondecode(var.x) 配合 string 类型参数实现。
参数取值状态说明
状态 | 说明 |
留空 | 非保密参数不允许留空提交。 |
设为空值 | 在 .tfvars 文件中写入 |
设为保密值 | 取值通过信封加密存储。与设为空值互斥,不能同时选择。 |
关联参数集
参数集创建后需关联到下游对象才能生效。关联层级决定参数集的影响范围:
关联对象 | 影响范围 | 适用场景 |
模板(Module) | 该模板的所有版本继承。 | 设置所有版本共用的基线变量值。 |
模板版本(ModuleVersion) | 仅指定版本生效。 | 为特定版本设置差异化变量值(如镜像 ID)。 |
任务(Task) | 仅该任务的作业可见。 | 同模板、不同环境(如生产环境和开发环境)使用不同入参。 |
资源栈(Stack) | 该资源栈所有 Deployment 共用。 | 在资源栈层级统一管理多环境部署的变量值。 |
操作步骤
进入目标模板、模板版本、任务或资源栈的详情页。
找到参数集区域,单击关联参数集。
在弹窗中勾选目标参数集(单次 1~5 个),单击确定。
同一下游资源关联的所有参数集中,参数名称必须全局唯一。如存在同名参数,关联请求将被拒绝。
解除关联
在参数集详情页的已关联资源页签中,选中目标行单击解除关联,或勾选多行后单击批量解除关联。
解除关联不会触发关联资源重新执行作业,仅影响后续新建作业的变量取值。
取值优先级
当同一变量在多个层级被定义时,系统按以下优先级从高到低合并取值:
任务参数(运行时直接传入,优先级最高)
任务(Task)关联的参数集
模板版本关联的参数集
模板关联的参数集
模板中 variable 的 default 值(优先级最低)
上层关联参数集中出现的变量值会覆盖下层的默认值。
管理保密参数
参数集支持将敏感值标记为保密参数。勾选设为保密值后,系统采用以下安全机制:
环节 | 处理方式 |
存储 | 通过 KMS 信封加密链路存储,数据库中不保存明文。 |
控制台展示 | 用占位符 |
API 返回 | 列表、详情和关联查询接口的 value 字段返回 null。 |
作业执行 | 执行时解密为明文合并到 tfvars,明文不进入任务日志。 |
修改取值 | 留空表示沿用原密文;填入新值则替换原值。 |
在模板中应将对应变量声明为 variable "x" { sensitive = true }。否则 Terraform 在 plan 或 apply 阶段可能将明文输出到任务日志,导致参数集侧的脱敏保护失效。
保密标志在已有参数上不能切换。如需变更,请删除该参数后重新创建。
关于密钥管理(KEK、DEK、加密上下文、密钥轮转、BYOK 等)的详细信息,请参见管理密钥与加密配置。
修改与删除参数集
修改参数集
在参数集管理列表中,找到目标参数集,单击编辑修改参数配置。修改后请注意以下事项:
修改保存后立即生效,关联资源的下一次作业或 Plan 将使用新值。
运行中的作业不受影响,因为作业在创建时已对参数做快照。
是否自动触发新作业取决于关联任务的触发策略(triggerStrategy)。手动触发策略的任务不会自动重跑。
参数集不提供版本快照与回滚功能。如需保留历史值,建议另存为新参数集。
删除参数集
在参数集详情页的已关联资源页签中,解除所有关联。
返回参数集管理列表,找到目标参数集,单击删除并确认。
仍有关联资源时无法删除。删除参数集会清理对应的数据加密密钥(DEK)记录,但 KMS 中的主密钥(KEK)不会被删除。关联资源和历史作业不受影响。
常见问题
参数集和任务参数有什么区别?
任务参数是任务级一次性入参,仅当前任务可见;参数集是独立资源,可跨模板、模板版本、任务和资源栈复用。当两者存在同名变量时,任务参数优先级最高。
同一资源关联多个参数集时,参数名称冲突如何处理?
系统不允许同名参数存在。关联请求时如检测到参数名称冲突,将拒绝关联并提示冲突的参数名。
保密参数在作业日志中是否会泄露?
参数集侧的保密参数已脱敏,但模板中对应的变量必须声明 sensitive = true。否则 Terraform 在 plan 或 apply 阶段可能将明文输出到日志。
参数集能否跨账号共享?
不支持。参数集按账号隔离。跨账号场景建议通过模板共享,由各账号自建参数集实现。
删除参数集是否影响历史作业?
不影响。作业在创建时已对合并后的最终参数做快照,后续修改或删除参数集不影响已完成的作业。
单个资源最多能关联几个参数集?
最多 5 个。该上限为硬编码,无法申请调整。如需超过 5 个,建议将多个参数集合并为一个,或将公共参数上提到模板(Module)或模板版本(ModuleVersion)层级。