Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS CDK--如何从AWS CDK新创建的托管区域检索NS记录_Amazon Web Services_Amazon Route53_Aws Cdk - Fatal编程技术网

Amazon web services AWS CDK--如何从AWS CDK新创建的托管区域检索NS记录

Amazon web services AWS CDK--如何从AWS CDK新创建的托管区域检索NS记录,amazon-web-services,amazon-route53,aws-cdk,Amazon Web Services,Amazon Route53,Aws Cdk,假设我创建了一个公共托管区域或从查找中获取托管区域,并且我希望检索NS记录以供其他使用 const zone = new route53.PublicHostedZone(this, domain + 'HostedZone', { zoneName: '' + domain }) 当前的CDK是否有任何方法可以做到这一点。我环顾了一下API文档,没有发现任何内容。有什么建议吗 更新 我确实尝试了hostedZoneNameServers属性。然而,它似乎没有返回任何东西 const

假设我创建了一个公共托管区域或从查找中获取托管区域,并且我希望检索NS记录以供其他使用

const zone = new route53.PublicHostedZone(this, domain + 'HostedZone', {
    zoneName: '' + domain
})
当前的CDK是否有任何方法可以做到这一点。我环顾了一下API文档,没有发现任何内容。有什么建议吗


更新 我确实尝试了
hostedZoneNameServers
属性。然而,它似乎没有返回任何东西

const zone = route53.HostedZone.fromLookup(this, 'DotnetHostedZone', {
      domainName: <myDomain>,
    });

    new CfnOutput(this, `output1`, {
      value: zone.zoneName
    });

    new CfnOutput(this, `output2`, {
      value: zone.hostedZoneId
    });

    new CfnOutput(this, 'output3', {
      value: zone.hostedZoneNameServers?.toString() || 'No NameServer'
    });   
const zone=route53.HostedZone.fromLookup(这是“DotnetHostedZone”{
域名:,
});
新的CfnOutput(这个,`output1`{
值:zone.zoneName
});
新的CfnOutput(这个,`output2`{
值:zone.hostedZoneId
});
新的CfnOutput(这是“output3”{
值:zone.hostedZoneNameServers?.toString()| |“无名称服务器”
});   
✅  测试操作
产出:
测试操作输出1=
测试操作输出2=
test-ops.output3=没有名称服务器
我和我的区域确认,并用于进行记录导出,我可以检索我的所有记录


最终目标是自动化子域资源调配。但是我现在对这条路线感到有些抓狂。

区域对象上有一个
hostedZoneNameServers
属性

const zone = HostedZone.fromLookup(this, 'HostedZone', { domainName: config.zoneName });
const nsRecords = zone.hostedZoneNameServers;
参考:


如果我给你发垃圾邮件,我很抱歉。我确实尝试了hostedZoneNameServers属性,但目前它没有返回任何内容。当我用我的区域id检索记录时,我可以确认记录在那里。我已经更新了我的描述。谢谢,我唯一的想法是,在文档中,如果区域是私有的或区域是导入的,则表示
hostedZoneNameServers
可以为空。。。也许
fromLookup
会导致空值,但原始的“new route53.publichHostedZone”结果可能设置了此属性。是否可以尝试检查并使用最初创建区域时的
hostedZoneNameServers
的值?我确实仔细检查了我的区域,并从新创建的区域返回了正确的域名等。我的记录也不会被导入。它们是由
cdk
本身创建的。这里和那里的一些小差距使得像Terraform这样的完全自动化很难实现。
 ✅  test-ops

Outputs:
test-ops.output1 = <myDomain>
test-ops.output2 = <myZoneId>
test-ops.output3 = No NameServer
const zone = HostedZone.fromLookup(this, 'HostedZone', { domainName: config.zoneName });
const nsRecords = zone.hostedZoneNameServers;