Skip to content

An AWS CDK library that adds functionality for targetting additional resources in Route53

License

Notifications You must be signed in to change notification settings

RenovoSolutions/cdk-library-route53targets

Repository files navigation

Additional Route53 Targets for AWS CDK

build

This repo's intention is to add additional avenues for defining Route53 targets or adding targets that might not be available otherwise. See the (limited) feature list below:

Features

  • Add a load balancer target using the load balancers attributes instead of the resource class LoadBalancer. This is useful in cases where you need to add a Classic Load Balancer as a target, but the load balancer wasn't created in the same CDK app. Since the ELBv2 package in the aws-cdk doesn't implement a resource interface (ILoadBalancer) or other typical L2 concepts (abstract base class, "imports" using from methods) for constructs the ClassicLoadBalancerTarget requires a LoadBalancer outright. Since LoadBalancer is a concrete resource class we can't redefine something we want to target from another CDK app. So, this feature allows us to use data we know about the load balancer to set it as a target more directly.

Examples

const zone = new r53.HostedZone(stack, 'HostedZone', {
  zoneName: 'example.com',
});

new r53.ARecord(stack, 'AliasRecord', {
  zone,
  recordName: 'publiclb.example.com',
  target: r53.RecordTarget.fromAlias(new LoadBalancerTargetFromAttributes({
    dnsName: 'publiclb-1234567890.us-east-1.elb.amazonaws.com',
    hostedZoneId: 'A1AAAA0A79A41A',
  })),
});