tag_name
)进入集合/列表
tag_value
以下输出中的任何一个可能对我有用:
locals {
what_i_have = {
"cluster=foo|instance=foo#1" = [
{
instance_id = "i-fff11111"
tag_name = "tag1"
tag_value = "val1_a"
},
{
instance_id = "i-fff11111"
tag_name = "tag1"
tag_value = "val1_b"
},
],
"cluster=foo|instance=foo#2" = [
{
instance_id = "i-fff22222"
tag_name = "tag1"
tag_value = "val1_a"
},
{
instance_id = "i-fff22222"
tag_name = "tag1"
tag_value = "val1_b"
},
],
"cluster=bar|instance=bar#1" = [
{
instance_id = "i-bbb11111"
tag_name = "tag1"
tag_value = "val1_a"
},
],
},
}
这是可能的吗?
i天真地试图看看它的作用(下面
locals {
what_i_want_v1 = {
"cluster=foo|instance=foo#1" = {
instance_id = "i-fff11111"
tag_name = "tag1"
tag_value = ["val1_a", "val1_b"] # Values for identical `what_i_have` key are now "merged" in a set/list
},
"cluster=foo|instance=foo#2" = {
instance_id = "i-fff22222"
tag_name = "tag1"
tag_value = ["val1_a", "val1_b"]
},
"cluster=bar|instance=bar#1" = {
instance_id = "i-bbb11111"
tag_name = "tag1"
tag_value = ["val1_a"]
},
},
what_i_want_v2 = [ # Not a map anymore but I don't mind
{
instance_id = "i-fff11111"
tag_name = "tag1"
tag_value = ["val1_a", "val1_b"]
},
{
instance_id = "i-fff22222"
tag_name = "tag1"
tag_value = ["val1_a", "val1_b"]
},
{
instance_id = "i-bbb11111"
tag_name = "tag1"
tag_value = ["val1_a"]
},
],
what_i_want_v3 = [
{
instance_id = "i-fff11111"
tag_name = "tag1"
tag_value = "val1_a+val1_b" # Not an set/list but a string with a "+" separator
},
{
instance_id = "i-fff22222"
tag_name = "tag1"
tag_value = "val1_a+val1_b"
},
{
instance_id = "i-bbb11111"
tag_name = "tag1"
tag_value = "val1_a"
},
],
}
):merge()
但(显然)吞咽值:
local.attempt_1
Context:我正在将
locals {
attempt_1 = {for k, v in local.what_i_have: k => merge(v...)}
}
构建为
# attempt_1 =
{
"cluster=bar|instance=bar#1" = {
instance_id = "i-bbb11111"
tag_name = "tag1"
tag_value = "val1_a"
}
"cluster=foo|instance=foo#1" = {
instance_id = "i-fff11111"
tag_name = "tag1"
tag_value = "val1_b"
}
"cluster=foo|instance=foo#2" = {
instance_id = "i-fff22222"
tag_name = "tag1"
tag_value = "val1_b"
}
}
资源,以从标签列表中标记实例。
您可以将价值弄平,然后在它们上迭代:
what_i_have
for_each