如何在terraform 3.0中使用变量作为属性名称?

如何在terraform 3.0中使用变量作为属性名称?,terraform,Terraform,是否可以通过某种方式从变量创建任意属性?以下是我正在努力实现的目标 我目前的做法(现在已在3.0.0中弃用): 新语法需要一个带有条件字段的嵌套块。但我的条件存储在一个变量中: resource "aws_lb_listener_rule" "example" { condition { var.condition_field { values = var.condition_values } } } 是否可以通过某

是否可以通过某种方式从变量创建任意属性?以下是我正在努力实现的目标

我目前的做法(现在已在3.0.0中弃用):

新语法需要一个带有条件字段的嵌套块。但我的条件存储在一个变量中:

resource "aws_lb_listener_rule" "example" {
  condition {
    var.condition_field {
      values = var.condition_values
    }
  }
}

是否可以通过某种方式从变量创建任意属性

或者:我可以将嵌套属性块存储在变量中吗



我的问题背景:我目前正在尝试从2.70.0升级到3.0.0,我的系统中有很多突破性的变化。其中一个包括
aws\u lb\u listener\u规则
。如果无法从变量创建属性,我将不得不锁定版本或更改大量项目使用的模块API。

实际上似乎不可能做到这一点。我所发现的东西允许我在不更改模块变量的情况下使用3.0.0,并且所有使用它的Terraform脚本都是动态条件块

dynamic "condition" {
  for_each = var.field == "path-pattern" ? [var.field] : []
  content {
    path_pattern {
      values = var.patterns
    }   
  }
}
对所有可能的
var.field
值重复此操作

dynamic "condition" {
  for_each = var.field == "path-pattern" ? [var.field] : []
  content {
    path_pattern {
      values = var.patterns
    }   
  }
}