亚马逊有 this example了解如何为您的 CloudFrontWebDistribution
创建自定义别名:
import route53 = require('@aws-cdk/aws-route53');
import targets = require('@aws-cdk/aws-route53-targets');
new route53.AaaaRecord(this, 'Alias', {
zone: myZone,
target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution))
});
这看起来 super 简单。
但是,由于 Lambda@Edge 的限制,我不得不改用低级 CfnDistribution
。有没有办法为那个创建别名?直接或使用一些巫术从低级 CfnDistribution
创建高级 CloudFrontWebDistribution
构造?
最佳答案
我从 aws-route53-targets
模块中提取了 CloudFrontTarget
代码并对其进行了调整,使其成为:
class CfnDistributionTarget implements route53.IAliasRecordTarget {
private readonly distribution: CfnDistribution
/**
* The hosted zone Id if using an alias record in Route53.
* This value never changes.
*/
static readonly CLOUDFRONT_ZONE_ID = 'Z2FDTNDATAQYW2'
constructor(distribution) {
this.distribution = distribution
}
bind(_record: route53.IRecordSet): AliasRecordTargetConfig {
return {
hostedZoneId: CfnDistributionTarget.CLOUDFRONT_ZONE_ID,
dnsName: this.distribution.attrDomainName
}
}
}
关于amazon-web-services - 如何为 CfnDistribution 添加 Route53 别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59901382/