Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieving main route table from Vpc construct with AWS CDK

I am creating a default VPC using AWS CDK, and I want to update the main route table the Vpc construct creates with a Name tag. Below is the sample code of how I'm creating the VPC:

from aws_cdk import aws_ec2 as ec2
from constructs import Construct

class Vpc(Construct):
    def __init__(self, scope: Construct, construct_id: str,  **kwargs):
        super().__init__(scope, construct_id)

        vpc = self.create_vpc()

        # TODO: Add Name tag to main VPC route table here

    def create_vpc(self) -> ec2.Vpc:
        vpc_name = "TEST-VPC"

        vpc = ec2.Vpc(
            self, 'VPC',
            cidr='10.10.0.0/24',
            vpc_name=vpc_name
        )

        return vpc

Is it possible to get the main route table and tag it?

like image 566
Jeff Avatar asked Oct 27 '25 05:10

Jeff


1 Answers

Perhaps this doesn't strictly answer the question, but it's a viable solution for anyone that needs to add a route to subnets using CDK.

const vpcPeerConnectionId = 'hard-coded-id'
const vpcCidr = '10.22.0.0/16'
this.vpc.privateSubnets.forEach((subnet, index) => {
  let routeTableId = subnet.routeTable.routeTableId
  new CfnRoute(this, 'PrivateSubnetPeeringConnectionRoute' + index, {
    destinationCidrBlock: vpcCidr,
    routeTableId: routeTableId,
    vpcPeeringConnectionId: vpcPeerConnectionId
  })
})

Example uses a VPC Peering connection. For other uses see this document:

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.CfnRoute.html

like image 68
comfytoday Avatar answered Oct 29 '25 22:10

comfytoday



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!