我的问题如下 - 我有一个类似下面的本地代码块。我需要根据这些值创建一个 Map(这些值在多个地方使用)。
locals {
object = {
1 = {
name = "val1"
keys = ["val1"]
}
2 = {
name = "val2"
keys = ["val2", "val3", "val4"]
}
}
associations = flatten(
[
for obj in local.object : [
for association_key in obj.keys : {
"${obj.name}-${association_key}" = {
key = obj.name
association_key = association_key
}
}
]
]
)
}
当我运行 terraform 计划并输出上述内容时,我得到:
testing = [
+ {
+ val1-val1 = {
+ association_key = "val1"
+ key = "val1"
}
},
+ {
+ val2-val2 = {
+ association_key = "val2"
+ key = "val2"
}
},
+ {
+ val2-val3 = {
+ association_key = "val3"
+ key = "val2"
}
},
+ {
+ val2-val4 = {
+ association_key = "val4"
+ key = "val2"
}
},
]
然而我需要得到的东西是这样的:
testing = [
+ val1-val1 = {
+ association_key = "val1"
+ key = "val1"
}
+ val2-val2 = {
+ association_key = "val2"
+ key = "val2"
}
+ val2-val3 = {
+ association_key = "val3"
+ key = "val2"
}
+ val2-val4 = {
+ association_key = "val4"
+ key = "val2"
}
]
原因是对象的键值有很多重复,并且映射中需要有一个唯一的值。
我已尝试此处的解决方案- 但我无法创建我需要的地图。