JSPM

@aws-cdk/aws-route53-targets

1.28.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 33655
  • Score
    100M100P100Q24502F
  • License Apache-2.0

CDK Constructs for AWS Route53 Alias Targets

Package Exports

  • @aws-cdk/aws-route53-targets
  • @aws-cdk/aws-route53-targets/lib

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@aws-cdk/aws-route53-targets) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Route53 Alias Record Targets for the CDK Route53 Library


Stability: Stable


This library contains Route53 Alias Record targets for:

  • API Gateway custom domains
    new route53.ARecord(this, 'AliasRecord', {
      zone,
      target: route53.RecordTarget.fromAlias(new alias.ApiGateway(restApi)),
      // or - route53.RecordTarget.fromAlias(new alias.ApiGatewayDomainName(domainName)),
    });
  • CloudFront distributions
    new route53.ARecord(this, 'AliasRecord', {
      zone,
      target: route53.RecordTarget.fromAlias(new alias.CloudFrontTarget(distribution)),
    });
  • ELBv2 load balancers
    new route53.ARecord(this, 'AliasRecord', {
      zone,
      target: route53.RecordTarget.fromAlias(new alias.LoadBalancerTarget(elbv2)),
      // or - route53.RecordTarget.fromAlias(new alias.ApiGatewayDomainName(domainName)),
    });
  • Classic load balancers
    new route53.ARecord(this, 'AliasRecord', {
      zone,
      target: route53.RecordTarget.fromAlias(new alias.ClassicLoadBalancerTarget(elb)),
      // or - route53.RecordTarget.fromAlias(new alias.ApiGatewayDomainName(domainName)),
    });
  • InterfaceVpcEndpoints

Important: Based on the CFN docs for VPCEndpoints - see here - the attributes returned for DnsEntries in CloudFormation is a combination of the hosted zone ID and the DNS name. The entries are ordered as follows: regional public DNS, zonal public DNS, private DNS, and wildcard DNS. This order is not enforced for AWS Marketplace services, and therefore this CDK construct is ONLY guaranteed to work with non-marketplace services.

new route53.ARecord(stack, "AliasRecord", {
  zone,
  target: route53.RecordTarget.fromAlias(new alias.InterfaceVpcEndpointTarget(interfaceVpcEndpoint))
});
  • S3 Bucket WebSite:

Important: The Bucket name must strictly match the full DNS name. See the Developer Guide for more info.

const [recordName, domainName] = ['www', 'example.com'];

const bucketWebsite = new Bucket(this, 'BucketWebsite', {
  bucketName: [recordName, domainName].join('.'), // www.example.com
  publicReadAccess: true,
  websiteIndexDocument: 'index.html',
});

const zone = HostedZone.fromLookup(this, 'Zone', {domainName}); // example.com

new route53.ARecord(this, 'AliasRecord', {
  zone,
  recordName, // www
  target: route53.RecordTarget.fromAlias(new alias.BucketWebsiteTarget(bucket)),
});

See the documentation of @aws-cdk/aws-route53 for more information.