Route
Provides a resource to create a routing table entry (a route) in a VPC routing table.
NOTE on Route Tables and Routes: This provider currently provides both a standalone Route resource and a Route Table resource with routes defined in-line. At this time you cannot use a Route Table with in-line routes in conjunction with any Route resources. Doing so will cause a conflict of rule settings and will overwrite rules. NOTE on
gateway_idattribute: The AWS API is very forgiving with the resource ID passed in thegateway_idattribute. For example anaws.ec2.Routeresource can be created with anaws.ec2.NatGatewayoraws.ec2.EgressOnlyInternetGatewayID specified for thegateway_idattribute. Specifying anything other than anaws.ec2.InternetGatewayoraws.ec2.VpnGatewayID will lead to this provider reporting a permanent diff between your configuration and recorded state, as the AWS API returns the more-specific attribute. If you are experiencing constant diffs with anaws.ec2.Routeresource, the first thing to check is that the correct attribute is being specified.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const r = new aws.ec2.Route("r", {
    routeTableId: testing.id,
    destinationCidrBlock: "10.0.1.0/22",
    vpcPeeringConnectionId: "pcx-45ff3dc1",
});import pulumi
import pulumi_aws as aws
r = aws.ec2.Route("r",
    route_table_id=testing["id"],
    destination_cidr_block="10.0.1.0/22",
    vpc_peering_connection_id="pcx-45ff3dc1")using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
    var r = new Aws.Ec2.Route("r", new()
    {
        RouteTableId = testing.Id,
        DestinationCidrBlock = "10.0.1.0/22",
        VpcPeeringConnectionId = "pcx-45ff3dc1",
    });
});package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.NewRoute(ctx, "r", &ec2.RouteArgs{
			RouteTableId:           pulumi.Any(testing.Id),
			DestinationCidrBlock:   pulumi.String("10.0.1.0/22"),
			VpcPeeringConnectionId: pulumi.String("pcx-45ff3dc1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Route;
import com.pulumi.aws.ec2.RouteArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var r = new Route("r", RouteArgs.builder()
            .routeTableId(testing.id())
            .destinationCidrBlock("10.0.1.0/22")
            .vpcPeeringConnectionId("pcx-45ff3dc1")
            .build());
    }
}resources:
  r:
    type: aws:ec2:Route
    properties:
      routeTableId: ${testing.id}
      destinationCidrBlock: 10.0.1.0/22
      vpcPeeringConnectionId: pcx-45ff3dc1Example IPv6 Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const vpc = new aws.ec2.Vpc("vpc", {
    cidrBlock: "10.1.0.0/16",
    assignGeneratedIpv6CidrBlock: true,
});
const egress = new aws.ec2.EgressOnlyInternetGateway("egress", {vpcId: vpc.id});
const r = new aws.ec2.Route("r", {
    routeTableId: "rtb-4fbb3ac4",
    destinationIpv6CidrBlock: "::/0",
    egressOnlyGatewayId: egress.id,
});import pulumi
import pulumi_aws as aws
vpc = aws.ec2.Vpc("vpc",
    cidr_block="10.1.0.0/16",
    assign_generated_ipv6_cidr_block=True)
egress = aws.ec2.EgressOnlyInternetGateway("egress", vpc_id=vpc.id)
r = aws.ec2.Route("r",
    route_table_id="rtb-4fbb3ac4",
    destination_ipv6_cidr_block="::/0",
    egress_only_gateway_id=egress.id)using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
    var vpc = new Aws.Ec2.Vpc("vpc", new()
    {
        CidrBlock = "10.1.0.0/16",
        AssignGeneratedIpv6CidrBlock = true,
    });
    var egress = new Aws.Ec2.EgressOnlyInternetGateway("egress", new()
    {
        VpcId = vpc.Id,
    });
    var r = new Aws.Ec2.Route("r", new()
    {
        RouteTableId = "rtb-4fbb3ac4",
        DestinationIpv6CidrBlock = "::/0",
        EgressOnlyGatewayId = egress.Id,
    });
});package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		vpc, err := ec2.NewVpc(ctx, "vpc", &ec2.VpcArgs{
			CidrBlock:                    pulumi.String("10.1.0.0/16"),
			AssignGeneratedIpv6CidrBlock: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		egress, err := ec2.NewEgressOnlyInternetGateway(ctx, "egress", &ec2.EgressOnlyInternetGatewayArgs{
			VpcId: vpc.ID(),
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewRoute(ctx, "r", &ec2.RouteArgs{
			RouteTableId:             pulumi.String("rtb-4fbb3ac4"),
			DestinationIpv6CidrBlock: pulumi.String("::/0"),
			EgressOnlyGatewayId:      egress.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Vpc;
import com.pulumi.aws.ec2.VpcArgs;
import com.pulumi.aws.ec2.EgressOnlyInternetGateway;
import com.pulumi.aws.ec2.EgressOnlyInternetGatewayArgs;
import com.pulumi.aws.ec2.Route;
import com.pulumi.aws.ec2.RouteArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var vpc = new Vpc("vpc", VpcArgs.builder()
            .cidrBlock("10.1.0.0/16")
            .assignGeneratedIpv6CidrBlock(true)
            .build());
        var egress = new EgressOnlyInternetGateway("egress", EgressOnlyInternetGatewayArgs.builder()
            .vpcId(vpc.id())
            .build());
        var r = new Route("r", RouteArgs.builder()
            .routeTableId("rtb-4fbb3ac4")
            .destinationIpv6CidrBlock("::/0")
            .egressOnlyGatewayId(egress.id())
            .build());
    }
}resources:
  vpc:
    type: aws:ec2:Vpc
    properties:
      cidrBlock: 10.1.0.0/16
      assignGeneratedIpv6CidrBlock: true
  egress:
    type: aws:ec2:EgressOnlyInternetGateway
    properties:
      vpcId: ${vpc.id}
  r:
    type: aws:ec2:Route
    properties:
      routeTableId: rtb-4fbb3ac4
      destinationIpv6CidrBlock: ::/0
      egressOnlyGatewayId: ${egress.id}Import
Import a route in route table rtb-656C65616E6F72 with an IPv6 destination CIDR of 2620:0:2d0:200::8/125: Import a route in route table rtb-656C65616E6F72 with a managed prefix list destination of pl-0570a1d2d725c16be: Using pulumi import to import individual routes using ROUTETABLEID_DESTINATION. Import local routes using the VPC's IPv4 or IPv6 CIDR blocks. For example: Import a route in route table rtb-656C65616E6F72 with an IPv4 destination CIDR of 10.42.0.0/16:
$ pulumi import aws:ec2/route:Route my_route rtb-656C65616E6F72_10.42.0.0/16Import a route in route table rtb-656C65616E6F72 with an IPv6 destination CIDR of 2620:0:2d0:200::8/125:
$ pulumi import aws:ec2/route:Route my_route rtb-656C65616E6F72_2620:0:2d0:200::8/125Import a route in route table rtb-656C65616E6F72 with a managed prefix list destination of pl-0570a1d2d725c16be:
$ pulumi import aws:ec2/route:Route my_route rtb-656C65616E6F72_pl-0570a1d2d725c16be