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
andnat_gateway_id
: The AWS API is very forgiving with these two attributes and theaws_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 youraws_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.
NOTE on
propagating_vgws
and theaws_vpn_gateway_route_propagation
resource: If thepropagating_vgws
argument is present, it's not supported to also define route propagations usingaws_vpn_gateway_route_propagation
, since this resource will delete any propagating gateways not explicitly listed inpropagating_vgws
. Omit this argument when defining route propagation using the separate resource.
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 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
In addition to all arguments above, 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
© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/aws/r/route_table.html