amazon-web-services - 错误 : Incorrect attribute value type module.network.private_subnets[0] 是包含 3 个元素的元组

标签 amazon-web-services terraform

我在尝试从 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/

相关文章:

Azure 应用服务 - 我是否需要在 svc 计划和​​应用 svc 上集成 Vnet?

azure - 如何使用 Terraform 将现有多个 Azure 策略分配给多个资源

hadoop - 使用Cloudera Manager停用节点

amazon-web-services - 使用 SecretsManager 作为后端的本地 MWAA (AWS Airflow) "Can' t 查找凭据”

amazon-web-services - AWS AppSync WebUI 非常慢

c# - 无法使用 Mapbox "Create an Upload"api 上传数据文件

amazon-web-services - 创建没有资源的 CloudFormation 堆栈

terraform - Terraform 中的动态 map 创建

firebase - Terraform Firebase Web 应用程序

amazon-web-services - 我的kubernetes AWS NLB集成无法正常工作