tf_*_*_sj 3 terraform terraform-provider-aws
我目前在 test.tfvars 文件中有这张地图:
ssm = {
names = ["Terraform-1","Terraform-2","Terraform-3"]
values = ["tf-1","tf-2","tf-3"]
}
Run Code Online (Sandbox Code Playgroud)
我想做的是:
resource "aws_ssm_parameter" "parameter_store" {
count = 3
name = "$${element(var.ssm[names],count.index)}"
type = "String"
value = "$${element(var.ssm[values],count.index)}"
}
Run Code Online (Sandbox Code Playgroud)
但我希望计数基于我的 ssm 地图中的名称列表的长度,而不是 count=3。我试过这个:
"${length(var.ssm[names])}"
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
Error: aws_ssm_parameter.parameter_store: resource count can't reference variable: names
Run Code Online (Sandbox Code Playgroud)
谁能指出我解决此错误的正确方向?我不太确定我做错了什么。
当前的 terraform 版本 (0.11.x) 在需要处理嵌套在地图中的列表时,有时表现得有点奇怪。这可能会在新版本 0.12.x 中得到修复,但也许有更好的解决方案......
为什么你不这样重组你的地图:
ssm = {
"Terraform-1" = "tf-1"
"Terraform-2" = "tf-2"
"Terraform-3" = "tf-3"
}
Run Code Online (Sandbox Code Playgroud)
您的资源现在如下所示:
resource "aws_ssm_parameter" "parameter_store" {
count = "${length(var.ssm)}"
name = "${keys(var.ssm)[count.index]}"
type = "String"
value = "${values(var.ssm)[count.index]}"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8687 次 |
最近记录: |