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 VPC ID.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 routeegress_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