【发布时间】:2021-12-27 08:56:50
【问题描述】:
我想用for_each 创建一个dynamic 资源,我想实现一个资源创建条件,但是由于某种我不明白的原因,资源创建条件没有按预期工作。
逻辑很简单:我有一个对象列表,每个对象都是资源,因此在每个对象中都有一个bool 变量,可以创建资源。
resource "aws_autoscaling_group" "aws_asg" {
for_each = { for key, value in var.parameters : key => value if flatten([ for x in var.parameters : x.init ]) }
}
flatten([ for x in var.parameters : x.init ])中的问题,资源取第一个元素,忽略下一个元素:
+ x = [
+ true,
+ false,
]
这里是var.parameters
parameters = [
# Runner 1
{
init = true
name = "test-runner-1"
scaling = {
desired = 3
maximum = 9
minimum = 3
}
},
# Runner 2
{
init = false
name = "test-runner-2"
scaling = {
desired = 3
maximum = 9
minimum = 3
}
}
]
}
知道如何将每个布尔值映射到资源创建吗?
【问题讨论】:
-
你能分享一下你的对象结构吗?
-
什么是
var.parameters? -
@akortex & @Marcin 我已经更新了帖子,并包含了
var.parameters的内容
标签: amazon-web-services terraform terraform-provider-aws