使用CloudFormation添加RecordSet时找不到指定Route53托管区域
排查"未找到名为app2.secretdomain.com的托管区域"报错
这几个常见问题可能导致你遇到的报错,逐一排查试试:
1. 托管区域名称拼写出错
- 核对CloudFormation模板里的
HostedZoneName参数,必须和Route53控制台显示的app2.secretdomain.com完全一致,注意大小写、点号位置、有没有多/漏字符(比如不小心写成app2.secretdomain.co或者app2.secretdmain.com)。
2. 账户不匹配
- 确认部署CloudFormation栈的AWS账户,和创建
app2.secretdomain.com托管区域的账户是不是同一个。 - 如果是跨账户使用托管区域,别用
HostedZoneName,改用HostedZoneId,同时要确保当前账户有访问该托管区域的权限。
3. 用错了托管区域指定方式
AWS::Route53::RecordSetGroup支持HostedZoneName和HostedZoneId两种指定方式。如果不同账户下有同名的托管区域,用HostedZoneName可能匹配到错误的区域,这种情况直接用HostedZoneId更靠谱(ID可以从Route53控制台复制)。- 举个正确的模板片段例子:
Resources: App2RecordSetGroup: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneId: ZXXXXXXXXXXXXXX RecordSets: - Name: sub.app2.secretdomain.com. Type: A TTL: '300' ResourceRecords: - 192.168.1.1
4. 私有托管区域的VPC关联问题
- 如果
app2.secretdomain.com是私有托管区域,要确保CloudFormation部署的资源所在VPC,已经关联到这个私有托管区域。同样,这种场景下优先用HostedZoneId指定区域,避免名称匹配问题。
5. 区域不匹配
- Route53是全球服务,但私有托管区域关联的VPC属于特定AWS区域。如果CloudFormation栈部署的区域,和私有托管区域关联VPC的区域不一样,也可能导致识别失败。要确保栈部署在和VPC相同的区域。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

