我目前在一个test.tfvars文件中有这个地图:
ssm = {
names = ["Terraform-1","Terraform-2","Terraform-3"]
values = ["tf-1","tf-2","tf-3"]
}我想做的是:
resource "aws_ssm_parameter" "parameter_store" {
count = 3
name = "$${element(var.ssm[names],count.index)}"
type = "String"
value = "$${element(var.ssm[values],count.index)}"
}但是,我希望计数基于我的count=3映射中的姓名列表的长度,而不是ssm。我试过了:
"${length(var.ssm[names])}"但是我得到了一个错误:
Error: aws_ssm_parameter.parameter_store: resource count can't reference variable: names有谁能为我指出解决这个错误的正确方向吗?我不太确定我做错了什么。
发布于 2018-09-03 20:03:59
当当前的terraform版本(0.11.x)需要处理嵌套在map中的列表时,它的行为有时会有点奇怪。这可能会在新版本0.12.x中修复,但也许有更好的解决方案……
为什么不像这样重新构建您的地图:
ssm = {
"Terraform-1" = "tf-1"
"Terraform-2" = "tf-2"
"Terraform-3" = "tf-3"
}您的资源现在将如下所示:
resource "aws_ssm_parameter" "parameter_store" {
count = "${length(var.ssm)}"
name = "${keys(var.ssm)[count.index]}"
type = "String"
value = "${values(var.ssm)[count.index]}"
}https://stackoverflow.com/questions/52045811
复制相似问题