如何将列表输入传递给 terraform 中的 aws vpc elb

how to pass list input to aws vpc elb in terraform

我在这里尝试在我有 2 个 public 子网的 VPC 中提供 aws classic ELB。这些子网也由 terraform 提供,我正在尝试将这两个子网 ID 传递给 elb module.SO 问题是我无法将列表输入提供给 elb 子网字段

public_subnet 变量工作正常,因为我已将它用于路由 table 关联,只是我无法处理列表并将其作为 vpc 的输入。

如果我使用 subnets = [var.public_subnet.0,var.public_subnet.1]

这是我的代码

resource "aws_elb" "webelb" {
  name               = "foobar-terraform-elb"
  #availability_zones = [var.public_subnet]
  subnets = [var.public_subnet]
#
#
#
}

variable "public_subnet" {
  type = list
}

subnet.tf
output "public_subnet" {
  value = aws_subnet.public.*.id
}```

Error:
```Error: Incorrect attribute value type

  on elb/elb.tf line 4, in resource "aws_elb" "webelb":
   4:   availability_zones = [var.public_subnet]

Inappropriate value for attribute "availability_zones": element 0: string
required.```



因为 var.public_subnet 已经是一个列表。 [var.public_subnet] 等同于 [["192.168.0.0/32"]] 而不是预期的未嵌套输入 ["102.168.0.0/32"]

即...只需使用 var.public_subnet