我目前在test.tfvars文件中有这个 Map :
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)}"
}
但是,我希望计数基于我的ssm Map 中名称列表的长度,而不是count = 3 . 我试过这个:
"${length(var.ssm[names])}"
但是我收到了错误:
Error: aws_ssm_parameter.parameter_store: resource count can't reference variable: names
任何人都可以指出我正确的方向解决这个错误?我不太确定我做错了什么 .
1 回答
当需要处理嵌套在 Map 中的列表时,当前的terraform版本(0.11.x)有时会有点奇怪 . 这可以通过新版本0.12.x修复,但也许有更好的解决方案......
为什么不像这样重构 Map :
您的资源现在看起来像这样: