问题描述 投票:0回答:0
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


terraform hcl
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.