github.com/koding/terraform@v0.6.4-0.20170608090606-5d7e0339779d/website/source/docs/providers/aws/r/route_table.html.markdown (about) 1 --- 2 layout: "aws" 3 page_title: "AWS: aws_route_table" 4 sidebar_current: "docs-aws-resource-route-table|" 5 description: |- 6 Provides a resource to create a VPC routing table. 7 --- 8 9 # aws\_route\_table 10 11 Provides a resource to create a VPC routing table. 12 13 ~> **NOTE on Route Tables and Routes:** Terraform currently 14 provides both a standalone [Route resource](route.html) and a Route Table resource with routes 15 defined in-line. At this time you cannot use a Route Table with in-line routes 16 in conjunction with any Route resources. Doing so will cause 17 a conflict of rule settings and will overwrite rules. 18 19 ~> **NOTE on `gateway_id` and `nat_gateway_id`:** The AWS API is very foregiving with these two 20 attributes and the `aws_route_table` resource can be created with a NAT ID specified as a Gateway ID attribute. 21 This _will_ lead to a permanent diff between your configuration and statefile, as the API returns the correct 22 parameters in the returned route table. If you're experiencing constant diffs in your `aws_route_table` resources, 23 the first thing to check is whether or not you're specifying a NAT ID instead of a Gateway ID, or vice-versa. 24 25 ## Example usage with tags: 26 27 ```hcl 28 resource "aws_route_table" "r" { 29 vpc_id = "${aws_vpc.default.id}" 30 31 route { 32 cidr_block = "10.0.1.0/24" 33 gateway_id = "${aws_internet_gateway.main.id}" 34 } 35 36 route { 37 ipv6_cidr_block = "::/0" 38 egress_only_gateway_id = "${aws_egress_only_internet_gateway.foo.id}" 39 } 40 41 tags { 42 Name = "main" 43 } 44 } 45 ``` 46 47 ## Argument Reference 48 49 The following arguments are supported: 50 51 * `vpc_id` - (Required) The VPC ID. 52 * `route` - (Optional) A list of route objects. Their keys are documented below. 53 * `tags` - (Optional) A mapping of tags to assign to the resource. 54 * `propagating_vgws` - (Optional) A list of virtual gateways for propagation. 55 56 Each route supports the following: 57 58 * `cidr_block` - (Optional) The CIDR block of the route. 59 * `ipv6_cidr_block` - Optional) The Ipv6 CIDR block of the route 60 * `egress_only_gateway_id` - (Optional) The Egress Only Internet Gateway ID. 61 * `gateway_id` - (Optional) The Internet Gateway ID. 62 * `nat_gateway_id` - (Optional) The NAT Gateway ID. 63 * `instance_id` - (Optional) The EC2 instance ID. 64 * `vpc_peering_connection_id` - (Optional) The VPC Peering ID. 65 * `network_interface_id` - (Optional) The ID of the elastic network interface (eni) to use. 66 67 Each route must contain either a `gateway_id`, an `instance_id`, a `nat_gateway_id`, a 68 `vpc_peering_connection_id` or a `network_interface_id`. Note that the default route, mapping 69 the VPC's CIDR block to "local", is created implicitly and cannot be specified. 70 71 ## Attributes Reference 72 73 The following attributes are exported: 74 ~> **NOTE:** Only the target that is entered is exported as a readable 75 attribute once the route resource is created. 76 77 * `id` - The ID of the routing table 78 79 ## Import 80 81 Route Tables can be imported using the `route table id`, e.g. 82 83 ``` 84 $ terraform import aws_route_table.public_rt rtb-22574640 85 ```