routes
Creates, updates, deletes or gets a route
resource or lists routes
in a region
Overview
Name | routes |
Type | Resource |
Description | 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. |
Id | aws.ec2.routes |
Fields
Name | Datatype | Description |
---|---|---|
carrier_gateway_id | string | 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. |
cidr_block | string | |
core_network_arn | string | The Amazon Resource Name (ARN) of the core network. |
destination_cidr_block | string | 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 . |
destination_ipv6_cidr_block | string | The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match. |
destination_prefix_list_id | string | The ID of a prefix list used for the destination match. |
egress_only_internet_gateway_id | string | [IPv6 traffic only] The ID of an egress-only internet gateway. |
gateway_id | string | The ID of an internet gateway or virtual private gateway attached to your VPC. |
instance_id | string | 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. |
local_gateway_id | string | The ID of the local gateway. |
nat_gateway_id | string | [IPv4 traffic only] The ID of a NAT gateway. |
network_interface_id | string | The ID of a network interface. |
route_table_id | string | The ID of the route table for the route. |
transit_gateway_id | string | The ID of a transit gateway. |
vpc_endpoint_id | string | The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only. |
vpc_peering_connection_id | string | The ID of a VPC peering connection. |
region | string | AWS region. |
Methods
Name | Accessible by | Required Params |
---|---|---|
create_resource | INSERT | RouteTableId, region |
delete_resource | DELETE | data__Identifier, region |
update_resource | UPDATE | data__Identifier, data__PatchDocument, region |
list_resources | SELECT | region |
get_resource | SELECT | data__Identifier, region |
SELECT
examples
Gets all routes
in a region.
SELECT
region,
carrier_gateway_id,
cidr_block,
core_network_arn,
destination_cidr_block,
destination_ipv6_cidr_block,
destination_prefix_list_id,
egress_only_internet_gateway_id,
gateway_id,
instance_id,
local_gateway_id,
nat_gateway_id,
network_interface_id,
route_table_id,
transit_gateway_id,
vpc_endpoint_id,
vpc_peering_connection_id
FROM aws.ec2.routes
WHERE region = 'us-east-1';
Gets all properties from an individual route
.
SELECT
region,
carrier_gateway_id,
cidr_block,
core_network_arn,
destination_cidr_block,
destination_ipv6_cidr_block,
destination_prefix_list_id,
egress_only_internet_gateway_id,
gateway_id,
instance_id,
local_gateway_id,
nat_gateway_id,
network_interface_id,
route_table_id,
transit_gateway_id,
vpc_endpoint_id,
vpc_peering_connection_id
FROM aws.ec2.routes
WHERE region = 'us-east-1' AND data__Identifier = '<RouteTableId>|<CidrBlock>';
INSERT
example
Use the following StackQL query and manifest file to create a new route
resource, using stack-deploy
.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO aws.ec2.routes (
RouteTableId,
region
)
SELECT
'{{ RouteTableId }}',
'{{ region }}';
/*+ create */
INSERT INTO aws.ec2.routes (
CarrierGatewayId,
CoreNetworkArn,
DestinationCidrBlock,
DestinationIpv6CidrBlock,
DestinationPrefixListId,
EgressOnlyInternetGatewayId,
GatewayId,
InstanceId,
LocalGatewayId,
NatGatewayId,
NetworkInterfaceId,
RouteTableId,
TransitGatewayId,
VpcEndpointId,
VpcPeeringConnectionId,
region
)
SELECT
'{{ CarrierGatewayId }}',
'{{ CoreNetworkArn }}',
'{{ DestinationCidrBlock }}',
'{{ DestinationIpv6CidrBlock }}',
'{{ DestinationPrefixListId }}',
'{{ EgressOnlyInternetGatewayId }}',
'{{ GatewayId }}',
'{{ InstanceId }}',
'{{ LocalGatewayId }}',
'{{ NatGatewayId }}',
'{{ NetworkInterfaceId }}',
'{{ RouteTableId }}',
'{{ TransitGatewayId }}',
'{{ VpcEndpointId }}',
'{{ VpcPeeringConnectionId }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: route
props:
- name: CarrierGatewayId
value: '{{ CarrierGatewayId }}'
- name: CoreNetworkArn
value: '{{ CoreNetworkArn }}'
- name: DestinationCidrBlock
value: '{{ DestinationCidrBlock }}'
- name: DestinationIpv6CidrBlock
value: '{{ DestinationIpv6CidrBlock }}'
- name: DestinationPrefixListId
value: '{{ DestinationPrefixListId }}'
- name: EgressOnlyInternetGatewayId
value: '{{ EgressOnlyInternetGatewayId }}'
- name: GatewayId
value: '{{ GatewayId }}'
- name: InstanceId
value: '{{ InstanceId }}'
- name: LocalGatewayId
value: '{{ LocalGatewayId }}'
- name: NatGatewayId
value: '{{ NatGatewayId }}'
- name: NetworkInterfaceId
value: '{{ NetworkInterfaceId }}'
- name: RouteTableId
value: '{{ RouteTableId }}'
- name: TransitGatewayId
value: '{{ TransitGatewayId }}'
- name: VpcEndpointId
value: '{{ VpcEndpointId }}'
- name: VpcPeeringConnectionId
value: '{{ VpcPeeringConnectionId }}'
DELETE
example
/*+ delete */
DELETE FROM aws.ec2.routes
WHERE data__Identifier = '<RouteTableId|CidrBlock>'
AND region = 'us-east-1';
Permissions
To operate on the routes
resource, the following permissions are required:
Create
ec2:CreateRoute,
ec2:DescribeRouteTables,
ec2:DescribeNetworkInterfaces
Read
ec2:DescribeRouteTables
Update
ec2:ReplaceRoute,
ec2:DescribeRouteTables,
ec2:DescribeNetworkInterfaces
Delete
ec2:DeleteRoute,
ec2:DescribeRouteTables
List
ec2:DescribeRouteTables