#for_eachを使わない場合
terraformから複数のssmパラメータをデプロイする場合、for_eachを使わない場合は下記のように複数のresourceブロックを書く必要があります。
ssm.tf
resource "aws_ssm_parameter" "parameter1" {
name = "key1"
type = "String"
value = "value1"
}
resource "aws_ssm_parameter" "parameter2" {
name = "key2"
type = "String"
value = "value2"
}
resource "aws_ssm_parameter" "parameter3" {
name = "key3"
type = "String"
value = "value3"
}
この方法だとパラメータの数が多くなると見通しが悪くなってしまいます。
#for_eachを使って見通しを良くしよう
ここで、このようにfor_eachとローカルブロックを使用することで見通しをよくすることができます。
ssm.tf
resource "aws_ssm_parameter" "parameter_for_ecs" {
for_each=local.parameters
name = each.key
type = "String"
value = each.value
}
locals {
parameters={
"key1":"value1",
"key2":"value2",
"key3":"value3"
}
}