首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform条件迭代

Terraform条件迭代
EN

Stack Overflow用户
提问于 2021-11-16 09:17:32
回答 1查看 74关注 0票数 0

我也想用for_each创建一个dynamic资源,我想实现一个资源创建条件,但是由于一些我不理解的原因,资源创建条件不能像预期的那样工作。

逻辑非常简单:我有一个对象列表,每个对象都是资源,因此在每个对象中都有一个bool变量,用于创建资源。

代码语言:javascript
复制
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 ])中的问题是,资源获取第一个元素,而忽略下一个元素:

代码语言:javascript
复制
  + x = [
      + true,
      + false,
    ]

这是var.parameters

代码语言:javascript
复制
   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
            }
       }
   ]
}

你知道如何将每个布尔值映射到资源创建吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-16 10:40:08

如果你想有条件地遍历你的parameters,那么它应该是:

代码语言:javascript
复制
resource "aws_autoscaling_group" "aws_asg"  {
   for_each = { for key, value in var.parameters : key => value if value.init }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69986471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档