terraform创建变量的简单循环,以后可以使用

时间:2019-02-01 15:18:30

标签: amazon-web-services terraform terraform-provider-aws

我是terraform开发的新手,它试图创建一个简单的变量循环,以便稍后使用,如下所示:

这对我来说非常有效,并按预期创建了两个子网。

variable "availability_zones" {
  description = "Available Availability Zones"
  type = "list"
  default = [ "us-east-1a", "us-east-1b" ]
}
variable "public_subnet_cidr" {
  description = "CIDR for Public Subnets"
  type = "list"
  default = [ "10.240.32.0/26", "10.240.32.64/26" ]

# Define Public Subnet
resource "aws_subnet" "public-subnets" {
  count = 2
  vpc_id = "${aws_vpc.default.id}"
  cidr_block = "${element(var.public_subnet_cidr, count.index)}"
  availability_zone = "${element(var.availability_zones, count.index)}"

  tags {
    Name = "${element(var.availability_zones, count.index)}_${element(var.public_subnet_cidr, count.index)}"
  }
}

但是在尝试将这些子网关联到默认路由时,我无法弄清楚如何从之前创建的那些子网中获取各个子网ID。并最终得到以下代码。有没有办法获取各个子网的subnet.id?

# Assign Default Public Route Table to Public Subnet
resource "aws_route_table_association" "default_public_route" {
  subnet_id = "${aws_subnet.public-subnets.id}"     <<-- This is the line I am trying to figure out
  route_table_id = "${aws_route_table.default_public_route_table.id}"
}

先谢谢了。 山姆

1 个答案:

答案 0 :(得分:1)

您即将了解如何使用它。这walk through可以为您提供帮助。

resource "aws_route_table_association" "default_public_route" {
  count = 2
  subnet_id = "${element(aws_subnet.public-subnets.*.id, count.index)}"
  route_table_id = "${aws_route_table.default_public_route_table.id}"
}
相关问题