我也想用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
}
}
]
}你知道如何将每个布尔值映射到资源创建吗?
发布于 2021-11-16 10:40:08
如果你想有条件地遍历你的parameters,那么它应该是:
resource "aws_autoscaling_group" "aws_asg" {
for_each = { for key, value in var.parameters : key => value if value.init }
}https://stackoverflow.com/questions/69986471
复制相似问题