是否可以通过某种方式从变量创建任意属性?这是我想要达到的目标。
我目前的操作方式(目前在3.0.0中已弃用):
resource "aws_lb_listener_rule" "example" {
condition {
field = 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_lb_listener_rule
。如果无法通过变量创建属性,则必须固定版本或更改大量项目使用的模块API。
实际上似乎无法做到这一点。我发现的关闭操作使我可以使用3.0.0,而无需更改模块变量,并且所有使用它的Terraform脚本都是动态条件块。
dynamic "condition" {
for_each = var.field == "path-pattern" ? [var.field] : []
content {
path_pattern {
values = var.patterns
}
}
}
对所有可能的var.field
值重复此操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句