AWS Route53故障转移别名记录集删除失败:参数不匹配
解决Route53删除故障转移别名记录集时的匹配错误
我之前也碰到过一模一样的问题!Route53在删除记录集时的匹配要求真的特别苛刻,哪怕一个不起眼的细节不对,都会抛出这个「值不匹配」的错误。你已经核对了配置项,但可能还有几个容易忽略的点没注意到:
1. 域名末尾的点必须完全匹配
看报错信息里的记录名是abc.aws-ab-xyz.abcd.com.(末尾带点),但你JSON里写的是abc.aws-ab-xyz.abcd.com(不带点)。Route53内部存储域名时默认会加上末尾的根域点,DELETE请求里的Name字段必须和这个完全一致,差一个点都不行。
2. 导出现有记录的精确配置再修改
最稳妥的方法是先把当前存在的记录集完整导出,直接复用它的结构来做DELETE请求,避免手动输入出错。执行这条命令获取目标记录的详细信息:
aws route53 list-resource-record-sets --hosted-zone-id <my-zone-id> --query "ResourceRecordSets[?Name=='abc.aws-ab-xyz.abcd.com.' && Type=='A' && SetIdentifier=='abc-Secondary']"
注意命令里的Name要带末尾的点,这样能精准定位到你要删的那条记录。把返回的JSON内容直接复制到你的file.json里,只把Action改成DELETE,其他字段原封不动保留。
3. 检查所有属性的完全一致性
Route53要求DELETE请求的ResourceRecordSet必须和现有记录的每一个字段完全匹配,包括:
AliasTarget里的HostedZoneId和DNSName:确认和当前记录里的完全一致,哪怕一个字符错了都不行HealthCheckId:核对报错里的ID和你JSON里的是否完全相同,有没有大小写或者字符遗漏Failover字段:确保是SECONDARY,和现有记录的故障转移类型一致
修正后的JSON示例
基于导出的记录,你的file.json应该长这样(替换成你实际导出的字段值):
{ "Comment": "test-rdc", "Changes": [ { "Action": "DELETE", "ResourceRecordSet": { "Name": "abc.aws-ab-xyz.abcd.com.", "Type": "A", "SetIdentifier": "abc-Secondary", "Failover": "SECONDARY", "AliasTarget": { "HostedZoneId": "jashkhakh", "DNSName": "hhhkjhkh", "EvaluateTargetHealth": false }, "HealthCheckId": "hhjhkh" } } ] }
按照这个方法修改后,再执行删除命令应该就能成功了——亲测这个方法解决了我当时的问题!
内容的提问来源于stack exchange,提问作者pinocchio
相关产品推荐
相关产品推荐

