我在尝试从 Terraform 11 升级到 Terraform 12 时遇到问题。我之前使用以下语法从模块的 ID 列表中检索第三个元素。模块输出如下:
# Subnets
output "private_subnets" {
description = "List of IDs of private subnets"
value = ["${aws_subnet.private.*.id}"]
}
以前,这适用于 Terraform 11
subnet_id = "${element(module.network.private_subnets,3)}"
我以为我可以使用 2 的索引来获得相同的结果,但我得到以下错误:
Error: Incorrect attribute value type
on terraformfile.tf line 65, in resource "aws_instance" "myinstance":
65: subnet_id = module.network.private_subnets[2]
|----------------
| module.network.private_subnets[2] is tuple with 3 elements
如有任何帮助,我们将不胜感激。
最佳答案
当前使用的值:
value = ["${aws_subnet.private.*.id}"]
产生一个列表列表。例如,
[
[
"subnet-0f5b759e80ffcf305",
"subnet-0500c8c2a40e5b381",
],
]
如果您想继续以该形式使用它,稍后,当您使用 element
时,您必须执行以下操作:
subnet_id = element(module.network.private_subnets[0], 3)
或者,将 private_subnets
重新定义为:
value = aws_subnet.private.*.id
关于amazon-web-services - 错误 : Incorrect attribute value type module.network.private_subnets[0] 是包含 3 个元素的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65134711/