

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::EC2::Route
<a name="aws-resource-ec2-route"></a>

Specifies a route in a route table. For more information, see [Routes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-table-routes) in the *Amazon VPC User Guide*.

You must specify either a destination CIDR block or prefix list ID. You must also specify exactly one of the resources as the target.

If you create a route that references a transit gateway in the same template where you create the transit gateway, you must declare a dependency on the transit gateway attachment. The route table cannot use the transit gateway until it has successfully attached to the VPC. Add a [ DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) in the `AWS::EC2::Route` resource to explicitly declare a dependency on the `AWS::EC2::TransitGatewayAttachment` resource.

## Syntax
<a name="aws-resource-ec2-route-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-ec2-route-syntax.json"></a>

```
{
  "Type" : "AWS::EC2::Route",
  "Properties" : {
      "[CarrierGatewayId](#cfn-ec2-route-carriergatewayid)" : String,
      "[CoreNetworkArn](#cfn-ec2-route-corenetworkarn)" : String,
      "[DestinationCidrBlock](#cfn-ec2-route-destinationcidrblock)" : String,
      "[DestinationIpv6CidrBlock](#cfn-ec2-route-destinationipv6cidrblock)" : String,
      "[DestinationPrefixListId](#cfn-ec2-route-destinationprefixlistid)" : String,
      "[EgressOnlyInternetGatewayId](#cfn-ec2-route-egressonlyinternetgatewayid)" : String,
      "[GatewayId](#cfn-ec2-route-gatewayid)" : String,
      "[InstanceId](#cfn-ec2-route-instanceid)" : String,
      "[LocalGatewayId](#cfn-ec2-route-localgatewayid)" : String,
      "[NatGatewayId](#cfn-ec2-route-natgatewayid)" : String,
      "[NetworkInterfaceId](#cfn-ec2-route-networkinterfaceid)" : String,
      "[RouteTableId](#cfn-ec2-route-routetableid)" : String,
      "[TransitGatewayId](#cfn-ec2-route-transitgatewayid)" : String,
      "[VpcEndpointId](#cfn-ec2-route-vpcendpointid)" : String,
      "[VpcPeeringConnectionId](#cfn-ec2-route-vpcpeeringconnectionid)" : String
    }
}
```

### YAML
<a name="aws-resource-ec2-route-syntax.yaml"></a>

```
Type: AWS::EC2::Route
Properties:
  [CarrierGatewayId](#cfn-ec2-route-carriergatewayid): String
  [CoreNetworkArn](#cfn-ec2-route-corenetworkarn): String
  [DestinationCidrBlock](#cfn-ec2-route-destinationcidrblock): String
  [DestinationIpv6CidrBlock](#cfn-ec2-route-destinationipv6cidrblock): String
  [DestinationPrefixListId](#cfn-ec2-route-destinationprefixlistid): String
  [EgressOnlyInternetGatewayId](#cfn-ec2-route-egressonlyinternetgatewayid): String
  [GatewayId](#cfn-ec2-route-gatewayid): String
  [InstanceId](#cfn-ec2-route-instanceid): String
  [LocalGatewayId](#cfn-ec2-route-localgatewayid): String
  [NatGatewayId](#cfn-ec2-route-natgatewayid): String
  [NetworkInterfaceId](#cfn-ec2-route-networkinterfaceid): String
  [RouteTableId](#cfn-ec2-route-routetableid): String
  [TransitGatewayId](#cfn-ec2-route-transitgatewayid): String
  [VpcEndpointId](#cfn-ec2-route-vpcendpointid): String
  [VpcPeeringConnectionId](#cfn-ec2-route-vpcpeeringconnectionid): String
```

## Properties
<a name="aws-resource-ec2-route-properties"></a>

`CarrierGatewayId`  <a name="cfn-ec2-route-carriergatewayid"></a>
The ID of the carrier gateway.  
You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CoreNetworkArn`  <a name="cfn-ec2-route-corenetworkarn"></a>
The Amazon Resource Name (ARN) of the core network.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DestinationCidrBlock`  <a name="cfn-ec2-route-destinationcidrblock"></a>
The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify `100.68.0.18/18`, we modify it to `100.68.0.0/18`.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DestinationIpv6CidrBlock`  <a name="cfn-ec2-route-destinationipv6cidrblock"></a>
The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DestinationPrefixListId`  <a name="cfn-ec2-route-destinationprefixlistid"></a>
The ID of a prefix list used for the destination match.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`EgressOnlyInternetGatewayId`  <a name="cfn-ec2-route-egressonlyinternetgatewayid"></a>
[IPv6 traffic only] The ID of an egress-only internet gateway.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`GatewayId`  <a name="cfn-ec2-route-gatewayid"></a>
The ID of an internet gateway or virtual private gateway attached to your VPC.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceId`  <a name="cfn-ec2-route-instanceid"></a>
The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LocalGatewayId`  <a name="cfn-ec2-route-localgatewayid"></a>
The ID of the local gateway.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NatGatewayId`  <a name="cfn-ec2-route-natgatewayid"></a>
[IPv4 traffic only] The ID of a NAT gateway.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NetworkInterfaceId`  <a name="cfn-ec2-route-networkinterfaceid"></a>
The ID of a network interface.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RouteTableId`  <a name="cfn-ec2-route-routetableid"></a>
The ID of the route table for the route.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TransitGatewayId`  <a name="cfn-ec2-route-transitgatewayid"></a>
The ID of a transit gateway.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`VpcEndpointId`  <a name="cfn-ec2-route-vpcendpointid"></a>
The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`VpcPeeringConnectionId`  <a name="cfn-ec2-route-vpcpeeringconnectionid"></a>
The ID of a VPC peering connection.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-ec2-route-return-values"></a>

### Ref
<a name="aws-resource-ec2-route-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the ID of the route.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-ec2-route-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-ec2-route-return-values-fn--getatt-fn--getatt"></a>

`CidrBlock`  <a name="CidrBlock-fn::getatt"></a>
The IPv4 CIDR block.

## Examples
<a name="aws-resource-ec2-route--examples"></a>



**Topics**
+ [Create a route to a gateway](#aws-resource-ec2-route--examples--Create_a_route_to_a_gateway)
+ [Create a route to a carrier gateway](#aws-resource-ec2-route--examples--Create_a_route_to_a_carrier_gateway)

### Create a route to a gateway
<a name="aws-resource-ec2-route--examples--Create_a_route_to_a_gateway"></a>

The following example adds a route that is added to an internet gateway.

#### JSON
<a name="aws-resource-ec2-route--examples--Create_a_route_to_a_gateway--json"></a>

```
"myRoute" : {
   "Type" : "AWS::EC2::Route",
   "DependsOn" : "GatewayToInternet",
   "Properties" : {
      "RouteTableId" : { "Ref" : "myRouteTable" },
      "DestinationCidrBlock" : "0.0.0.0/0",
      "GatewayId" : { "Ref" : "myInternetGateway" }
   }
}
```

#### YAML
<a name="aws-resource-ec2-route--examples--Create_a_route_to_a_gateway--yaml"></a>

```
  myRoute:
    Type: AWS::EC2::Route
    DependsOn: GatewayToInternet
    Properties:
       RouteTableId:
         Ref: myRouteTable
       DestinationCidrBlock: 0.0.0.0/0
       GatewayId:
         Ref: myInternetGateway
```

### Create a route to a carrier gateway
<a name="aws-resource-ec2-route--examples--Create_a_route_to_a_carrier_gateway"></a>

The following example creates a route to a carrier gateway.

#### JSON
<a name="aws-resource-ec2-route--examples--Create_a_route_to_a_carrier_gateway--json"></a>

```
"myCarrierRoute" : {
   "Type" : "AWS::EC2::Route",
   "DependsOn" : "GatewayToInternetAndCarrierNetwork",
   "Properties" : {
      "RouteTableId" : { "Ref" : "myRouteTable" },
      "DestinationCidrBlock" : "0.0.0.0/0",
      "GatewayId" : { "Ref" : "myCarrierGateway" }
   }
}
```

#### YAML
<a name="aws-resource-ec2-route--examples--Create_a_route_to_a_carrier_gateway--yaml"></a>

```
 myCarrierRoute:
    Type: AWS::EC2::Route
    DependsOn: GatewayToInternetAndCarrierNetwork
    Properties:
       RouteTableId:
         Ref: myRouteTable
       DestinationCidrBlock: 0.0.0.0/0
       GatewayId:
         Ref: myCarrierGateway
```

## See also
<a name="aws-resource-ec2-route--seealso"></a>
+ [CreateRoute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRoute.html) in the *Amazon EC2 API Reference*
+ [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*

