CDK Route53 图书馆的异名记录目标
AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.
关于如何移徙的更多信息,请参见: 移动到 AWS CDK v2 指南。 。 。 .
此库包含 Route 53 Alioas Record 目标:
-
API 网关自定义域
import * as apigw from '@aws-cdk/aws-apigateway'; declare const zone: route53.HostedZone; declare const restApi: apigw.LambdaRestApi; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.ApiGateway(restApi)), // or - route53.RecordTarget.fromAlias(new alias.ApiGatewayDomain(domainName)), }); -
API 网关 V2 自定义域
import * as apigwv2 from '@aws-cdk/aws-apigatewayv2'; declare const zone: route53.HostedZone; declare const domainName: apigwv2.DomainName; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.ApiGatewayv2DomainProperties(domainName.regionalDomainName, domainName.regionalHostedZoneId)), }); -
云纹分布
import * as cloudfront from '@aws-cdk/aws-cloudfront'; declare const zone: route53.HostedZone; declare const distribution: cloudfront.CloudFrontWebDistribution; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)), }); -
ELBv2载重平衡器
import * as elbv2 from '@aws-cdk/aws-elasticloadbalancingv2'; declare const zone: route53.HostedZone; declare const lb: elbv2.ApplicationLoadBalancer; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.LoadBalancerTarget(lb)), // or - route53.RecordTarget.fromAlias(new targets.ApiGatewayDomain(domainName)), }); -
经典负载平衡器
import * as elb from '@aws-cdk/aws-elasticloadbalancing'; declare const zone: route53.HostedZone; declare const lb: elb.LoadBalancer; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.ClassicLoadBalancerTarget(lb)), // or - route53.RecordTarget.fromAlias(new alias.ApiGatewayDomain(domainName)), });
重要内容: 依据 AWS 文档,所有别名记录 在53号公路,指 弹性负载平衡器将永远包括 双层 dNSName 用于解析 IPv4/ IPv6 地址( 无) 双层 IPv6不会解决).
例如,如果亚马逊为负载平衡器提供的DNS是 ALB-xxxxxxx.us-west-2.elb.amazonaws.com,CDK将在53号公路上创建别名目标 dualstack.ALB-xxxxxxx.us-west-2.elb.amazonaws.com。 。 。 .
-
全球加速器
import * as globalaccelerator from '@aws-cdk/aws-globalaccelerator'; declare const zone: route53.HostedZone; declare const accelerator: globalaccelerator.Accelerator; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.GlobalAcceleratorTarget(accelerator)), // or - route53.RecordTarget.fromAlias(new targets.GlobalAcceleratorDomainTarget('xyz.awsglobalaccelerator.com')), });
重要内容: 如果您使用GlobalAccelatorDomainTalget,通过一个字符串而不是Iccelator的实例,则确保该字符串是已存在的GlobalAccelator实例的有效域名. 见 关于DNS地址的文件 使用全球加速器获取更多信息.
- 接口 Vpc 端点
重要内容: 根据用于 VPC 端点的 CFN 文件 - 看这里 - CloudFormation中DnsEntries返回的属性是主机区ID和DNS名的组合. 条目顺序如下:区域公共DNS,区公共DNS,私人DNS,通配符DNS. 对AWS市场服务不执行这一命令,因此,只保证这种CDK结构与非市场服务合作.
import * as ec2 from '@aws-cdk/aws-ec2';
declare const zone: route53.HostedZone;
declare const interfaceVpcEndpoint: ec2.InterfaceVpcEndpoint;
new route53.ARecord(this, "AliasRecord", {
zone,
target: route53.RecordTarget.fromAlias(new targets.InterfaceVpcEndpointTarget(interfaceVpcEndpoint)),
});
- S3 Bucket 网站 :
重要内容: Bucket名称必须严格匹配完整的DNS名称. 见 开发者指南 需要更多信息.
import * as s3 from '@aws-cdk/aws-s3';
const recordName = 'www';
const domainName = 'example.com';
const bucketWebsite = new s3.Bucket(this, 'BucketWebsite', {
bucketName: [recordName, domainName].join('.'), // www.example.com
publicReadAccess: true,
websiteIndexDocument: 'index.html',
});
const zone = route53.HostedZone.fromLookup(this, 'Zone', {domainName}); // example.com
new route53.ARecord(this, 'AliasRecord', {
zone,
recordName, // www
target: route53.RecordTarget.fromAlias(new targets.BucketWebsiteTarget(bucketWebsite)),
});
-
用户池域
import * as cognito from '@aws-cdk/aws-cognito'; declare const zone: route53.HostedZone; declare const domain: cognito.UserPoolDomain; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.UserPoolDomainTarget(domain)), }); -
53号路线记录
declare const zone: route53.HostedZone; declare const record: route53.ARecord; new route53.ARecord(this, 'AliasRecord', { zone, target: route53.RecordTarget.fromAlias(new targets.Route53RecordTarget(record)), }); -
弹性 Beanstalk 环境 :
重要内容: 只支持2016年后所创造的具有区域终点的"弹性豆浆"环境.
declare const zone: route53.HostedZone;
declare const ebsEnvironmentUrl: string;
new route53.ARecord(this, 'AliasRecord', {
zone,
target: route53.RecordTarget.fromAlias(new targets.ElasticBeanstalkEnvironmentEndpointTarget(ebsEnvironmentUrl)),
});
见文件 @aws-cdk/aws-route53 更多信息.