Skip to content

Data Source: awsRouteTables

This resource can be useful for getting back a list of route table ids to be referenced elsewhere.

Example Usage

The following adds a route for a particular cidr block to every (private kops) route table in a specified vpc to use a particular vpc peering connection.

/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
const dataAwsRouteTablesRts = new aws.dataAwsRouteTables.DataAwsRouteTables(
  this,
  "rts",
  {
    filter: [
      {
        name: "tag:kubernetes.io/kops/role",
        values: ["private*"],
      },
    ],
    vpcId: "${var.vpc_id}",
  }
);
const awsRouteR = new aws.route.Route(this, "r", {
  destinationCidrBlock: "10.0.0.0/22",
  routeTableId: `\${tolist(${dataAwsRouteTablesRts.ids})[count.index]}`,
  vpcPeeringConnectionId: "pcx-0e9a7a9ecd137dc54",
});
/*In most cases loops should be handled in the programming language context and 
not inside of the Terraform context. If you are looping over something external, e.g. a variable or a file input
you should consider using a for loop. If you are looping over something only known to Terraform, e.g. a result of a data source
you need to keep this like it is.*/
awsRouteR.addOverride("count", `\${length(${dataAwsRouteTablesRts.ids})}`);

Argument Reference

  • filter - (Optional) Custom filter block as described below.

  • vpcId - (Optional) VPC ID that you want to filter from.

  • tags - (Optional) Map of tags, each pair of which must exactly match a pair on the desired route tables.

More complex filters can be expressed using one or more filter sub-blocks, which take the following arguments:

  • name - (Required) Name of the field to filter by, as defined by the underlying AWS API.

  • values - (Required) Set of values that are accepted for the given field. A Route Table will be selected if any one of the given values matches.

Attributes Reference

  • id - AWS Region.
  • ids - List of all the route table ids found.

Timeouts

Configuration options:

  • read - (Default 20M)