AWS::EC2::Route - AWS CloudFormation (original) (raw)
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
- CreateRoute in the Amazon EC2 API Reference
- Route tables in the Amazon VPC User Guide