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

86 lines
2.9 KiB
Markdown
Raw Normal View History

2014-07-23 23:26:47 +02:00
---
layout: "aws"
page_title: "AWS: aws_route_table"
sidebar_current: "docs-aws-resource-route-table|"
2014-10-22 05:21:56 +02:00
description: |-
Provides a resource to create a VPC routing table.
2014-07-23 23:26:47 +02:00
---
# 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](route.html) 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:
2014-07-23 23:26:47 +02:00
```hcl
2014-07-23 23:26:47 +02:00
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"
}
2014-07-23 23:26:47 +02:00
}
```
## 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.
2014-07-23 23:26:47 +02:00
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.
2014-07-23 23:26:47 +02:00
* `gateway_id` - (Optional) The Internet Gateway ID.
* `nat_gateway_id` - (Optional) The NAT Gateway ID.
2014-07-23 23:26:47 +02:00
* `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.
2014-07-23 23:26:47 +02:00
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.
2014-07-23 23:26:47 +02:00
## Attributes Reference
The following attributes are exported:
2015-06-24 05:44:02 +02:00
~> **NOTE:** Only the target that is entered is exported as a readable
attribute once the route resource is created.
2014-07-23 23:26:47 +02:00
* `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
```