AWS::EC2::Route - AWS CloudFormation

AWS::EC2::Route

Specifies a route in a route table within a VPC.

You must specify either DestinationCidrBlock or DestinationIpv6CidrBlock, plus the ID of one of the target resources.

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, "DestinationCidrBlock" : String, "DestinationIpv6CidrBlock" : 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 DestinationCidrBlock: String DestinationIpv6CidrBlock: 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.

Required: No

Type: String

Update requires: No interruption

DestinationCidrBlock

The IPv4 CIDR block used for the destination match.

Required: Conditional

Type: String

Update requires: Replacement

DestinationIpv6CidrBlock

The IPv6 CIDR block used for the destination match.

Required: Conditional

Type: String

Update requires: No interruption

EgressOnlyInternetGatewayId

The ID of the 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.

Required: No

Type: String

Update requires: No interruption

LocalGatewayId

The ID of the local gateway.

Required: No

Type: String

Update requires: No interruption

NatGatewayId

The ID of a NAT gateway.

Required: No

Type: String

Update requires: No interruption

NetworkInterfaceId

The ID of the network interface.

Required: No

Type: String

Update requires: No interruption

RouteTableId

The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.

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.

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