#loops #for-loop #terraform #terragrunt
Вопрос:
давайте предположим, что у нас есть эта переменная:
foobars = { "first" : { specialkeys: [ "a", "b", "c" ] } "second" : {} }
теперь предположим, что мы хотели бы обойти этот объект foobars, зная, что специальных ключей не существует во «втором» объекте.
Это то, что я пробовал, но он жалуется, что
This object does not have an attribute named specialkeys
Мои попытки:
data = flatten([ for k, v in var.foobars : [ for sk in v.specialkeys : { special = sk, foo = k } ] ])
Ответ №1:
Я полагаю, что вы хотели бы сделать следующее:
data = flatten([ for k, v in local.foobars : [ for sk, sv in v : [ for spec in sv : { special = spec, foo = k } ] ] ])
Это приведет к чему-то вроде этого:
[ { "foo" = "first" "special" = "a" }, { "foo" = "first" "special" = "b" }, { "foo" = "first" "special" = "c" }, ]