Terraform循环通过两个元组



在下面的地形代码中,我试图创建具有单个块的组。现在我要用0,12个独立的块来创建。有没有其他的方法来创建组与单个块。我试过了,但没有成功

locals {
instances = [
{
instance  = "test1"
baseUrl   = "url"
subDomain = "sd"
groups = [
"app1",
"app2",
"app3",
]
},
{
instance  = "test2"
baseUrl   = "url2"
subDomain = "sd2"
groups = [
"t1",
"t2",
"t3",
]
},
]
}
resource "okta_group" "press" {
for_each = { for k, instance in local.instances[0].groups : k => instance ]
name     = each.value
}
resource "okta_group" "press1" {
for_each = { for k, instance in local.instances[1].groups : k => instance ]
name     = each.value
}

简单来说:您需要向for_each提供一个单一的(扁平的)列表。它不接受列表的列表或任何其他数据结构。

试题:

for_each = { for k, instance in flatten(local.instances[*].groups) : k => instance}
使用

:

  • flatten-将列表的列表转换为列表的操作
  • [*]-他们称之为splat表达

我建议读一下这些。

我得到了与使用flatten:

相同的结果
for_each = { for k, instance in local.instances[*].groups : k => instance }

最新更新