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 to100.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
-
CreateRoute in the Amazon EC2 API Reference
-
Route tables in the Amazon VPC User Guide