如何使用Terraform配置AWS RDS参数组的各列项属性
Terraform配置AWS RDS参数组其余列项说明
首先明确:RDS控制台参数组界面展示的列项,分为可自定义配置项和AWS侧预置的只读元数据项两类,后者不支持在Terraform中手动配置。
不支持配置的只读列项
以下列都是AWS根据数据库引擎、版本预定义的参数属性,属于平台侧的规则/说明信息,没有对应的Terraform配置字段,你不需要也无法手动修改:
Allowed values:参数允许的取值范围/枚举值,是AWS侧的校验规则,如果你配置的value不符合该范围,执行apply时AWS API会直接返回报错,不需要你在代码中额外声明规则Modifiable:标记参数是否支持修改、修改后是否需要重启实例,属于参数固定属性,无法自定义Apply type、Data type、Description:分别对应参数生效类型、数据类型、参数说明,全都是平台预置的元信息,不支持自定义配置
支持配置的剩余字段
除了你已经使用的name(对应Name列)、value(对应Value列),parameter块仅支持一个额外配置字段:
apply_method:控制参数修改后的生效时机,可选值如下:immediate:参数修改完成后立即生效,仅对标记为动态生效的参数有效pending-reboot:参数修改暂存,等关联的RDS实例重启后再生效,对应需要重启的静态参数
注意:如果为需要重启的静态参数配置apply_method = immediate,执行apply时会直接触发API报错。
完整配置示例
resource "aws_db_parameter_group" "default" { name = "rds-pg" family = "mysql5.6" # 动态参数:修改后即时生效 parameter { name = "character_set_client" value = "utf8" apply_method = "immediate" } # 静态参数:实例重启后生效 parameter { name = "innodb_buffer_pool_size" value = "134217728" apply_method = "pending-reboot" } }
补充说明:配置前可以先通过控制台/AWS CLI查询目标参数的允许值、是否可修改、生效类型等元信息,确认合法后再填写对应配置即可,这类元信息不需要写入Terraform代码。
内容的提问来源于stack exchange,提问作者jipot
相关产品推荐
相关产品推荐

