【发布时间】:2020-05-03 14:45:17
【问题描述】:
我正在尝试在我有 2 个公共子网的 VPC 中配置 aws 经典 ELB。这些子网也由 terraform 提供,我正在尝试将两个子网 id 都传递给 elb 模块。所以问题是我无法将列表输入提供给 elb 子网字段
public_subnet 变量工作正常,因为我已将它用于路由表关联,只是我无法处理列表并将其作为 vpc 的输入。
如果我使用子网 = [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.```
【问题讨论】:
-
如果你通过
subnets = var.public_subnet是否有效。提供 terraform 版本很有帮助,因为语法发生了变化,同时显示子网的实际来源也很有用。 (ps 我建议将您的 var 更改为 public_subnets,复数,如果它包含一个数组) -
感谢@Datise 按预期工作
-
如果你能接受,我会回答,那就太好了!
标签: terraform terraform-provider-aws