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