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 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 To declare this entity in your CloudFormation template, use the following syntax: ### JSON ``` { "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}}, "[OdbNetworkArn](#cfn-ec2-route-odbnetworkarn)" : {{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 ``` 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}} [OdbNetworkArn](#cfn-ec2-route-odbnetworkarn): {{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 `CarrierGatewayId` 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` 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` 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` 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` 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` [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` 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` 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` 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` [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` 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) `OdbNetworkArn` The Amazon Resource Name (ARN) of the ODB 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) `RouteTableId` 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` 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` 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` 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 ### Ref 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 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). #### `CidrBlock` The IPv4 CIDR block. ## Examples **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 The following example adds a route that is added to an internet gateway. #### JSON ``` "myRoute" : { "Type" : "AWS::EC2::Route", "DependsOn" : "GatewayToInternet", "Properties" : { "RouteTableId" : { "Ref" : "myRouteTable" }, "DestinationCidrBlock" : "0.0.0.0/0", "GatewayId" : { "Ref" : "myInternetGateway" } } } ``` #### YAML ``` 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 The following example creates a route to a carrier gateway. #### JSON ``` "myCarrierRoute" : { "Type" : "AWS::EC2::Route", "DependsOn" : "GatewayToInternetAndCarrierNetwork", "Properties" : { "RouteTableId" : { "Ref" : "myRouteTable" }, "DestinationCidrBlock" : "0.0.0.0/0", "GatewayId" : { "Ref" : "myCarrierGateway" } } } ``` #### YAML ``` myCarrierRoute: Type: AWS::EC2::Route DependsOn: GatewayToInternetAndCarrierNetwork Properties: RouteTableId: Ref: myRouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: Ref: myCarrierGateway ``` ## See also + [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*