如何在terraform中将列表输入传递到aws vpc elb

如何在terraform中将列表输入传递到aws vpc elb,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,在这里,我试图在VPC中提供一个aws经典ELB,其中我有2个公共子网。这些子网也由terraform提供,我正在尝试将这两个子网ID传递给elb模块。因此,问题是我无法将列表输入提供给elb子网字段 public_subnet变量工作正常,因为我将其用于路由表关联。只是我无法处理列表并将其作为vpc的输入 如果我使用subnets=[var.public\u subnet.0,var.public\u subnet.1]就可以了 这是我的密码 resource "aws_elb" "webel

在这里,我试图在VPC中提供一个aws经典ELB,其中我有2个公共子网。这些子网也由terraform提供,我正在尝试将这两个子网ID传递给elb模块。因此,问题是我无法将列表输入提供给elb子网字段

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

如果我使用subnets=[var.public\u subnet.0,var.public\u 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\u子网已经是一个列表。[var.public_subnet]相当于[[192.168.0.0/32]],而不是预期的非嵌套输入[102.168.0.0/32]


即…只需使用var.public\u子网

如果只传递subnets=var.public\u子网,是否有效。提供terraform版本是有帮助的,因为语法发生了变化,同时显示子网的实际来源也会对您有所帮助。ps我建议将您的var更改为公共子网,复数形式,如果它持有@Datise的ArrayTanks,并按预期工作。如果您能接受,我将回答这一问题,那太好了!