DevOps
Terraform for Expressions
→ 日本語版を読むI use Terraform's for_each expression frequently, but I've barely used for expressions, so I tried passing a map type to a for expression and applying an if filter.
locals {
names ={
foo = "abc"
bar = "def"
baz = "ghi"
}
}
output "sample" {
value = local.names
}
output "sample1" {
value = {for k, v in local.names : v => upper(k) }
}
output "sample2" {
value = {for k, v in local.names : k => v }
}
output "sample3" {
value = {for k, v in local.names : k => v if (k == "foo" || k == "baz")}
}
Output results
Outputs:
sample = {
"bar" = "def"
"baz" = "ghi"
"foo" = "abc"
}
sample1 = {
"abc" = "FOO"
"def" = "BAR"
"ghi" = "BAZ"
}
sample2 = {
"bar" = "def"
"baz" = "ghi"
"foo" = "abc"
}
sample3 = {
"baz" = "ghi"
"foo" = "abc"
}