管理参数集

更新时间:
复制 MD 格式

参数集是自动化服务台中可复用的变量集合。您可以将一组 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 开头。

创建参数集

  1. 登录自动化服务台

  2. 在左侧导航栏,选择参数集 > 参数集管理

  3. 单击新建参数集

  4. 在右侧滑出面板中,填写参数集名称(2~128 字符,账号内唯一)和可选的参数集描述(最多 1024 字符)。

  5. 添加参数行。每行填写名称类型取值。参数名称必须与模板中 variable "xxx" {} 的变量名一致。

  6. (可选)如需批量录入,单击面板右上角自动导入,选择导入来源:

    • 模板:从指定模板版本的 variable {} 块批量导入变量定义。

    • 资源导出:从已有资源栈或任务的输出导入。

  7. (可选)如某行参数为敏感值(如密码、Token),勾选设为保密值。系统将通过 KMS 信封加密存储该参数值。更多信息,请参见管理保密参数

  8. 单击提交

创建完成后,可在参数集管理列表中查看。

支持的参数类型

类型

控制台输入控件

取值示例

string

单行文本框

cn-hangzhou

number

数字框

23.14

bool

复选框

truefalse

map(string)

键值对编辑器

{"env":"prod"}

list(string)

列表编辑器

["10.0.0.0/24"]

说明

模板中如有复杂类型(如 list(object)set(string)),可使用 jsondecode(var.x) 配合 string 类型参数实现。

参数取值状态说明

状态

说明

留空

非保密参数不允许留空提交。

设为空值

在 .tfvars 文件中写入 xxx = null,主动覆盖模板中 variable 的 default 值。

设为保密值

取值通过信封加密存储。与设为空值互斥,不能同时选择。

关联参数集

参数集创建后需关联到下游对象才能生效。关联层级决定参数集的影响范围:

关联对象

影响范围

适用场景

模板(Module)

该模板的所有版本继承。

设置所有版本共用的基线变量值。

模板版本(ModuleVersion)

仅指定版本生效。

为特定版本设置差异化变量值(如镜像 ID)。

任务(Task)

仅该任务的作业可见。

同模板、不同环境(如生产环境和开发环境)使用不同入参。

资源栈(Stack)

该资源栈所有 Deployment 共用。

在资源栈层级统一管理多环境部署的变量值。

操作步骤

  1. 进入目标模板、模板版本、任务或资源栈的详情页。

  2. 找到参数集区域,单击关联参数集

  3. 在弹窗中勾选目标参数集(单次 1~5 个),单击确定

说明

同一下游资源关联的所有参数集中,参数名称必须全局唯一。如存在同名参数,关联请求将被拒绝。

解除关联

在参数集详情页的已关联资源页签中,选中目标行单击解除关联,或勾选多行后单击批量解除关联

说明

解除关联不会触发关联资源重新执行作业,仅影响后续新建作业的变量取值。

取值优先级

当同一变量在多个层级被定义时,系统按以下优先级从高到低合并取值:

  1. 任务参数(运行时直接传入,优先级最高)

  2. 任务(Task)关联的参数集

  3. 模板版本关联的参数集

  4. 模板关联的参数集

  5. 模板中 variable 的 default 值(优先级最低)

上层关联参数集中出现的变量值会覆盖下层的默认值。

管理保密参数

参数集支持将敏感值标记为保密参数。勾选设为保密值后,系统采用以下安全机制:

环节

处理方式

存储

通过 KMS 信封加密链路存储,数据库中不保存明文。

控制台展示

用占位符 <secret value> 替代实际值。

API 返回

列表、详情和关联查询接口的 value 字段返回 null。

作业执行

执行时解密为明文合并到 tfvars,明文不进入任务日志。

修改取值

留空表示沿用原密文;填入新值则替换原值。

重要

在模板中应将对应变量声明为 variable "x" { sensitive = true }。否则 Terraform 在 plan 或 apply 阶段可能将明文输出到任务日志,导致参数集侧的脱敏保护失效。

说明

保密标志在已有参数上不能切换。如需变更,请删除该参数后重新创建。

关于密钥管理(KEK、DEK、加密上下文、密钥轮转、BYOK 等)的详细信息,请参见管理密钥与加密配置。

修改与删除参数集

修改参数集

在参数集管理列表中,找到目标参数集,单击编辑修改参数配置。修改后请注意以下事项:

  • 修改保存后立即生效,关联资源的下一次作业或 Plan 将使用新值。

  • 运行中的作业不受影响,因为作业在创建时已对参数做快照。

  • 是否自动触发新作业取决于关联任务的触发策略(triggerStrategy)。手动触发策略的任务不会自动重跑。

说明

参数集不提供版本快照与回滚功能。如需保留历史值,建议另存为新参数集。

删除参数集

  1. 在参数集详情页的已关联资源页签中,解除所有关联。

  2. 返回参数集管理列表,找到目标参数集,单击删除并确认。

说明

仍有关联资源时无法删除。删除参数集会清理对应的数据加密密钥(DEK)记录,但 KMS 中的主密钥(KEK)不会被删除。关联资源和历史作业不受影响。

常见问题

参数集和任务参数有什么区别?

任务参数是任务级一次性入参,仅当前任务可见;参数集是独立资源,可跨模板、模板版本、任务和资源栈复用。当两者存在同名变量时,任务参数优先级最高。

同一资源关联多个参数集时,参数名称冲突如何处理?

系统不允许同名参数存在。关联请求时如检测到参数名称冲突,将拒绝关联并提示冲突的参数名。

保密参数在作业日志中是否会泄露?

参数集侧的保密参数已脱敏,但模板中对应的变量必须声明 sensitive = true。否则 Terraform 在 plan 或 apply 阶段可能将明文输出到日志。

参数集能否跨账号共享?

不支持。参数集按账号隔离。跨账号场景建议通过模板共享,由各账号自建参数集实现。

删除参数集是否影响历史作业?

不影响。作业在创建时已对合并后的最终参数做快照,后续修改或删除参数集不影响已完成的作业。

单个资源最多能关联几个参数集?

最多 5 个。该上限为硬编码,无法申请调整。如需超过 5 个,建议将多个参数集合并为一个,或将公共参数上提到模板(Module)或模板版本(ModuleVersion)层级。