如何排除使用 AWS CLI 创建 Route 53 资源记录集时收到的错误?

上次更新时间:2021 年 2 月 2 日

当我尝试使用 AWS 命令行界面 (AWS CLI) 创建资源记录集时,为什么会收到错误消息? 我该如何修复错误?

解决方法

注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

请参阅以下常见错误消息以确定错误的原因以及如何对其进行故障排除。

调用 changeResourceRecordSets 操作时发生错误 (InvalidInput):无效的 XML;cvc-enumeration-valid:值 'Delete' 对于枚举 '[CREATE、DELETE、UPSERT]' 而言分面无效。它必须是枚举中的值。

JSON 文件格式需要在配置文件中使用大写 CREATEDELETE 或者 UPSERT 值。

在配置文件中将值更改为大写。例如:

"Action": "CREATE",

调用 changeResourceRecordSets 操作时发生错误 (invalidChangeBatch):区域 domain.com. 的顶级不允许使用带 DNS 名称 domain.com. 的 CNAME 类型的 RRSet。

您不能在 DNS 命名空间的顶级节点上创建 CNAME 记录,也称为 zone apex(例如 example.com )。

如果您要为顶级域创建指向 AWS 资源的记录,请使用别名记录而不是 CNAME。

调用 changeResourceRecordSets 操作时发生错误 (invalidChangeBatch):不允许使用带 DNS 名称 b.domain.com. 的 MX 类型的 RRSet,因为区域 domain.com. 中已存在具有相同 DNS 名称的 CNAME 类型的 RRSet 冲突。

如果您为子域名(例如 test.example.com )设置了 CNAME 资源记录,则不能为该子域名设置 MX 记录、A 记录或 TXT 记录。

在同一托管区域的不同记录集中创建 MX 记录。

调用 changeResourceRecordSets 操作时发生错误 (invalidChangeBatch):[不允许使用带 DNS 名称 b.domain.com. 的 A 类型的 RRSet,因为区域 b.domain.com. 中已存在具有相同 DNS 名称的 CNAME 类型的 RRSet 冲突。]

如果您正在使用 "UPSERT" 将 CNAME 记录更新到任何其他记录,或者试图将现有记录更改为 CNAME 记录,则会收到此错误。

只有当你最初有 CNAME 记录和 UPSERT 到另一个 CNAME 记录时,UPSERT 才会成功。

调用 changeResourceRecordSets 操作时发生错误 (InvalidChangeBatch):尝试创建资源记录集 [name='b.domain.com.', type='CNAME'],但该记录集已经存在。

您正在对该域中已经存在的 CNAME 资源记录集执行 CREATE 操作。

为尚未存在的域创建 CNAME 记录集。

调用 changeResourceRecordSets 操作时发生错误 (InvalidChangeBatch):尝试删除资源记录集 [name='a.domain.com.', type='A'] 但所提供的值并未与当前值匹配。

您正在尝试使用 JSON 文件删除资源记录集,但内容与现有记录集的值不匹配。

检查并更新配置文件中 NameTypeTTL 的值。然后,尝试再次删除资源记录集。

调用 changeResourceRecordSets 操作时发生错误 (InvalidChangeBatch):尝试删除资源记录集 [name='a.domain.com.', type='A'] 但所提供的 rdata 无效。

您正在对资源记录集执行 DELETE 操作,但是 ResourceRecord 的值与现有资源记录集中的值不匹配。

检查并更新配置文件中的 ResourceRecord 值。然后,尝试再次删除资源记录集。

调用 changeResourceRecordSets 操作时发生错误 (InvalidChangeBatch):尝试删除资源记录集 [name='a.domain.com.', type='A'] 但该记录集无法找到。

您为域名使用的托管区域 ID 不正确。

使用以下格式通过正确的 ID 再次运行 change-resource-record-sets 命令:

aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXXXX --change-batch file://sample.json

调用 changeResourceRecordSets 操作时发生错误 (InvalidChangeBatch):尝试创建一个以 Applationenv.us-west-2.elasticbeanstalk.com 为目标的别名,在区域 Z1H1FL5HABSF5 中键入 A,但别名目标名称不在目标区域内。

您在配置文件中为 AWS 资源使用了不正确的 HostedZoneID 值。请注意,HostedZoneID 密钥的值是每个区域中 AWS 资源的唯一 ID,而不是域名的托管区域 ID。

检查 HostedZoneID 值并将其更新为 AWS 资源的托管区域 ID。如需获得更多信息,请参阅如何使用 AWS CLI 在 Route 53 中创建别名资源记录集?