AWS::EC2::Route - AWS CloudFormation

AWS::EC2::Route

Specifies a route in a route table. For more information, see 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 in the AWS::EC2::Route resource to explicitly declare a dependency on the AWS::EC2::TransitGatewayAttachment resource.

Syntax

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

JSON

{ "Type" : "AWS::EC2::Route", "Properties" : { "CarrierGatewayId" : String, "CoreNetworkArn" : String, "DestinationCidrBlock" : String, "DestinationIpv6CidrBlock" : String, "DestinationPrefixListId" : String, "EgressOnlyInternetGatewayId" : String, "GatewayId" : String, "InstanceId" : String, "LocalGatewayId" : String, "NatGatewayId" : String, "NetworkInterfaceId" : String, "RouteTableId" : String, "TransitGatewayId" : String, "VpcEndpointId" : String, "VpcPeeringConnectionId" : String } }

YAML

Type: AWS::EC2::Route Properties: CarrierGatewayId: String CoreNetworkArn: String DestinationCidrBlock: String DestinationIpv6CidrBlock: String DestinationPrefixListId: String EgressOnlyInternetGatewayId: String GatewayId: String InstanceId: String LocalGatewayId: String NatGatewayId: String NetworkInterfaceId: String RouteTableId: String TransitGatewayId: String VpcEndpointId: String 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

CoreNetworkArn

The Amazon Resource Name (ARN) of the core network.

Required: No

Type: String

Update requires: No interruption

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

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

DestinationPrefixListId

The ID of a prefix list used for the destination match.

Required: Conditional

Type: String

Update requires: Replacement

EgressOnlyInternetGatewayId

[IPv6 traffic only] The ID of an egress-only internet gateway.

Required: No

Type: String

Update requires: No interruption

GatewayId

The ID of an internet gateway or virtual private gateway attached to your VPC.

Required: No

Type: String

Update requires: No interruption

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

LocalGatewayId

The ID of the local gateway.

Required: No

Type: String

Update requires: No interruption

NatGatewayId

[IPv4 traffic only] The ID of a NAT gateway.

Required: No

Type: String

Update requires: No interruption

NetworkInterfaceId

The ID of a network interface.

Required: No

Type: String

Update requires: No interruption

RouteTableId

The ID of the route table for the route.

Required: Yes

Type: String

Update requires: Replacement

TransitGatewayId

The ID of a transit gateway.

Required: No

Type: String

Update requires: No interruption

VpcEndpointId

The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.

Required: No

Type: String

Update requires: No interruption

VpcPeeringConnectionId

The ID of a VPC peering connection.

Required: No

Type: String

Update requires: No interruption

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 Ref.

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 Fn::GetAtt.

CidrBlock

The IPv4 CIDR block.

Examples

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