gpt4 book ai didi

terraform - 从 Terraform Map 获取列表的长度

转载 作者:行者123 更新时间:2023-12-05 02:15:21 27 4
gpt4 key购买 nike

我目前在 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 映射中名称列表的长度,而不是 count=3。我试过这个:

"${length(var.ssm[names])}"

但是我得到了错误:

Error: aws_ssm_parameter.parameter_store: resource count can't reference variable: names

任何人都可以指出我解决此错误的正确方向吗?我不太确定自己做错了什么。

最佳答案

当前的 terraform 版本 (0.11.x) 在需要处理嵌套在 map 中的列表时有时会表现得有些奇怪。这可能会在新版本 0.12.x 中得到修复,但也许有更好的解决方案...

你为什么不像这样重构你的 map :

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]}"
}

关于terraform - 从 Terraform Map 获取列表的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com