AWS CDK,为Route53中的现有托管区域创建别名记录

2024-05-29 11:07:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用AWS CDK(Python作为我的部署语言),并尝试将现有cloudfront发行版的别名记录添加到现有的托管区域。当我可以让cdk synth工作时,cdk deploy找不到托管区域失败。在

我用AWS CDK版本1.5.0(构建c020efa)和1.6.0(构建3a0cde0)进行了测试。在

我试着找到这样的区域:

zone = route53.HostedZone.from_hosted_zone_attributes(
    self,
    'MyHostedZone',
    zone_name = props.domainName,
    hosted_zone_id = 'Z1XXXXXXXXXS1'
)

就像这样:

^{pr2}$

并将其与一起使用(如果创建了新的主体分区,则可以使用):

route53.ARecord(
    self,
    'SiteAliasRecord',
    record_name = siteDomain,
    target = route53.RecordTarget(alias_target=target),
    zone = zone
)

在这两种情况下,错误消息都是:

StaticSiteHTTPS/SiteAliasRecord (StaticSiteHTTPSSiteAliasRecord9BXXXXX) No hosted zone found with ID: Z2XXX6BQ9TEB5H (Service: AmazonRoute53; Status Code: 404; Error Code: NoSuchHostedZone; Request ID:

我不知道ID Z2XXX6BQ9TEB5H的来源,它不在我的模板中,也没有具有此ID的托管区域。 两者都会产生一个。模板.json包括:

"StaticSiteHTTPSSiteAliasRecord9BXXXXX": {
  "Type": "AWS::Route53::RecordSet",
  "Properties": {
    "Name": "dev.mydomain.com.",
    "Type": "A",
    "AliasTarget": {
      "DNSName": {
        "Fn::GetAtt": [
          "StaticSiteHTTPSSiteDistributionCFDistribution3BXXXXX",
          "DomainName"
        ]
      },
      "HostedZoneId": "Z2YYYYYYYYYW2"
    },
    "HostedZoneId": "Z1XXXXXXXXXXS1"
  },

from_lookup生成"HostedZoneId": "/hostedzone/Z1XXXXXXXXXXS1",而{}生成{}模板.json但是不管怎样,deploy都找不到托管区域。但是,这似乎表明synth找到了托管区域,运行的cdk context项也是由synth创建的。在

我还尝试通过from_hosted_zone_idfrom_hosted_zone_attributes获取托管区域,这也会抛出错误,但我的理解是,它们实际上不会在我的帐户中查找任何内容。在

另一方面,使用CDK创建一个新的托管区域是可行的,它包含alias记录。在

如何进一步调试?我应该使用不同的机制来提供或查找托管区域吗?在


Tags: fromaws模板id区域zonetarget记录
1条回答
网友
1楼 · 发布于 2024-05-29 11:07:20

很抱歉在Python中没有这个功能,但是我以前在CloudFront发行版中使用过Route53别名。

我将尝试创建别名记录目标,首先,导入Route53 targets模块:

...
import route53 = require('@aws-cdk/aws-route53');
import targets = require('@aws-cdk/aws-route53-targets');

然后,在实例化分发后,可以使用以下内容创建别名记录目标:

^{pr2}$

相关问题 更多 >

    热门问题