为什么我在尝试使用 AWS 命令行界面 (AWS CLI) 创建资源记录集时收到了错误消息?如何修复错误?
请参阅以下常见错误消息来确定错误的原因以及如何排查错误:
调用 ChangeResourceRecordSets 操作时出错 (InvalidInput):无效的 XML;cvc-enumeration-valid:值 'Delete' 对于枚举 '[CREATE, DELETE, UPSERT]' 在分面上无效。它必须是来自枚举的值。
JSON 文件格式要求在配置文件中使用大写 CREATE、DELETE 或 UPSERT 值。
将配置文件中的值更改为大写。例如:
"Action": "CREATE",
调用 ChangeResourceRecordSets 操作时出错 (InvalidChangeBatch):类型为 CNAME 且 DNS 名称为 domain.com 的 RRSet。不允许在区域 domain.com 的顶级域中使用。
您无法在 DNS 命名空间的顶级节点(也称为顶级域,例如 example.com)中创建 CNAME 记录。
如果您尝试为顶级域创建指向 AWS 资源的记录,则可以使用别名记录而不是 CNAME。
调用 ChangeResourceRecordSets 操作时出错 (InvalidChangeBatch):类型为 MX 且 DNS 名称为 domain.com 的 RRSet。不允许使用,原因是区域 domain.com 中已存在冲突的 RRSet,其类型为 CNAME 且 DNS 名称相同。
如果您有某个子域名称(例如 test.example.com)的 CNAME 资源记录集,则无法具有同一个子域的 MX 记录、A 记录或 TXT 记录。
在相同托管区域的不同记录集中创建 MX 记录。
调用 ChangeResourceRecordSets 操作时出错 (InvalidChangeBatch):尝试创建资源记录集 [name='b.domain.com.', type='CNAME'],但它已存在
您正在为域中已存在的 CNAME 资源记录集执行 CREATE 操作。
为尚不存在 CNAME 记录集的域创建该记录集。
调用 ChangeResourceRecordSets 操作时出错 (InvalidChangeBatch):尝试删除资源记录集 [name='a.domain.com.', type='A'],但提供的值与当前值不匹配
您在尝试使用 JSON 文件删除资源记录集,但其内容与现有记录集的值不匹配。
在配置文件中检查并更新名称、类型和 TTL 的值。然后,尝试重新删除资源记录集。
调用 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):尝试在区域 Z1H1FL5HABSF5 中创建定向到 applicationenv.us-west-2.elasticbeanstalk.com 且类型为 A 的别名,但别名目标名称不在目标区域中
您在配置文件中为 AWS 资源使用了不正确的 HostedZoneId 值。请注意,HostedZoneId 键的值是各个区域中 AWS 资源的唯一 ID,而不是域名的托管区域 ID。
检查并将 HostedZoneId 值更新为您 AWS 资源的托管区域 ID。
请参阅如何使用 AWS CLI 在 Route 53 中创建别名资源记录集?以获取更多信息。