我有四种不同的环境:
- 开发
- 坐
- UAT
- 刺
每个环境的参数组值都不同。以下值将进入每个环境的变量文件中。
以下是示例 AWS RDS 参数组的参数。在其他环境中,可能会有更多或更少的参数:
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"
}
]