Terraform 如何从任意数量的输入参数创建RDS参数组?
我有四种不同的环境:Terraform 如何从任意数量的输入参数创建RDS参数组?,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我有四种不同的环境: 发展 坐着 uat 刺激 每个环境的参数组值都不同。每个环境的变量文件中将包含以下值 以下是示例AWS RDS参数组的参数。在其他环境中,可能有更多或更少的参数: parameter { name = "character_set_client" value = "utf8mb4" } parameter { name = "character_set_connection" value = "utf8mb4" } parameter { nam
- 发展
- 坐着
- uat
- 刺激
parameter {
name = "character_set_client"
value = "utf8mb4"
}
parameter {
name = "character_set_connection"
value = "utf8mb4"
}
parameter {
name = "character_set_server"
value = "utf8mb4"
}
parameter {
name = "log_bin_trust_function_creators"
value = "1"
}
我很好奇如何在变量中表示这一点,以及如何编写资源来使用这些变量创建具有任意数量参数的RDS参数组
如何从任意数量的输入参数创建RDS参数组?您可以使用动态块:
dynamic "parameter" {
for_each = var.parameters
content {
name = parameter.value.name
value = parameter.value.value
}
}
变量可以是映射列表:
variable "parameters" {
type = list(map(string))
default = []
}
terraform.tfvars
:
parameters = [
{
name = "character_set_connection"
value = "utf8mb4"
},
{
name = "character_set_server"
value = "utf8mb4"
},
{
name = "log_bin_trust_function_creators"
value = "1"
}
]
可以使用动态块:
dynamic "parameter" {
for_each = var.parameters
content {
name = parameter.value.name
value = parameter.value.value
}
}
变量可以是映射列表:
variable "parameters" {
type = list(map(string))
default = []
}
terraform.tfvars
:
parameters = [
{
name = "character_set_connection"
value = "utf8mb4"
},
{
name = "character_set_server"
value = "utf8mb4"
},
{
name = "log_bin_trust_function_creators"
value = "1"
}
]
对于terraform 0.12?在计划之后,我将其作为参数{+apply_method=“immediate”+name=“character\u set_server”+value=“utf8mb4”}获取。apply_方法是可选的,带有“immediate”(默认)或“挂起的重新启动”。如果愿意,您可以将其添加到参数中,并使用以下语法查看它是否可用,如果不可用,则将其设置为null:
apply\u method=lookup(parameters.apply\u method,“apply\u method”,null)
对于terraform 0.12?在计划之后,我将其作为参数{+apply\u method=“immediate”+name=“character_set_server”+value=“utf8mb4”}apply_方法是可选的,带有“immediate”(默认)或“pending reboot”。如果愿意,可以将其添加到参数中,并使用以下语法查看其是否可用,如果不可用,则将其设置为null:apply_method=lookup(parameters.apply_method,“apply_method”,null)