terraform/website/source/docs/providers/aws/r/route_table.html.markdown

2.9 KiB

layout page_title sidebar_current description
aws AWS: aws_route_table docs-aws-resource-route-table| Provides a resource to create a VPC routing table.

aws_route_table

Provides a resource to create a VPC routing table.

~> NOTE on Route Tables and Routes: Terraform currently provides both a standalone Route resource and a Route Table resource with routes defined in-line. At this time you cannot use a Route Table with in-line routes in conjunction with any Route resources. Doing so will cause a conflict of rule settings and will overwrite rules.

~> NOTE on gateway_id and nat_gateway_id: The AWS API is very foregiving with these two attributes and the aws_route_table resource can be created with a NAT ID specified as a Gateway ID attribute. This will lead to a permanent diff between your configuration and statefile, as the API returns the correct parameters in the returned route table. If you're experiencing constant diffs in your aws_route_table resources, the first thing to check is whether or not you're specifying a NAT ID instead of a Gateway ID, or vice-versa.

Example usage with tags:

resource "aws_route_table" "r" {
  vpc_id = "${aws_vpc.default.id}"

  route {
    cidr_block = "10.0.1.0/24"
    gateway_id = "${aws_internet_gateway.main.id}"
  }

  route {
    ipv6_cidr_block = "::/0"
    egress_only_gateway_id = "${aws_egress_only_internet_gateway.foo.id}"
  }

  tags {
    Name = "main"
  }
}

Argument Reference

The following arguments are supported:

  • vpc_id - (Required) The ID of the routing table.
  • route - (Optional) A list of route objects. Their keys are documented below.
  • tags - (Optional) A mapping of tags to assign to the resource.
  • propagating_vgws - (Optional) A list of virtual gateways for propagation.

Each route supports the following:

  • cidr_block - (Optional) The CIDR block of the route.
  • ipv6_cidr_block - Optional) The Ipv6 CIDR block of the route
  • egress_only_gateway_id - (Optional) The Egress Only Internet Gateway ID.
  • gateway_id - (Optional) The Internet Gateway ID.
  • nat_gateway_id - (Optional) The NAT Gateway ID.
  • instance_id - (Optional) The EC2 instance ID.
  • vpc_peering_connection_id - (Optional) The VPC Peering ID.
  • network_interface_id - (Optional) The ID of the elastic network interface (eni) to use.

Each route must contain either a gateway_id, an instance_id, a nat_gateway_id, a vpc_peering_connection_id or a network_interface_id. Note that the default route, mapping the VPC's CIDR block to "local", is created implicitly and cannot be specified.

Attributes Reference

The following attributes are exported: ~> NOTE: Only the target that is entered is exported as a readable attribute once the route resource is created.

  • id - The ID of the routing table

Import

Route Tables can be imported using the route table id, e.g.

$ terraform import aws_route_table.public_rt rtb-22574640