本页面介绍您在使用 Cloud DNS 时可能会收到的常见错误消息、消息含义,以及建议执行来解决错误的操作。
一般错误
本部分介绍一些常规错误。
alreadyExists
指定的资源已存在;您无法创建副本。
建议执行的操作:创建资源时,使用适当的 get/list
API 来发现已存在的资源。
如果在添加记录时出现此错误,这是因为单个记录被视为记录集,这意味着每个条目(如果有多个条目)均代表不同的记录。您可以向同一域名系统 (DNS) 名称的记录集添加两个值或字符串,方法是在第一个值和第二个值之间添加一个空格。
如需详细了解如何解决此问题,请参阅解决记录冲突错误。
accessNotConfigured
未配置访问权限
如需解决此错误,您必须为项目启用 Cloud DNS API。
inactiveBillingState
项目
example_project
无法接受处于无效结算状态的请求。更新结算状态可能需要几分钟时间。
建议执行的操作:为项目启用结算功能。如需为新项目启用结算功能,或为现有项目重新启用结算功能,请按照为项目启用结算功能中的步骤操作。
preconditionFailed
这是一个总体性的错误,表示请求与当前服务器资源状态不兼容。客户端必须采取措施来修复该请求,然后再重试。如果您发送 create
更改请求并且该请求尝试删除的资源记录集与现有(具有相同名称和类型)的资源记录集不匹配,则会发生这种情况。
读取区域的当前状态并确定想要删除的内容。该区域在您上次查看之后可能发生了更改。
此错误消息包含有问题请求部分的路径。例如,entity.change.deletions[6]
表示 POST 请求正文中 change 对象所在 deletions
数组中的第 7 个元素。
建议执行的操作:修复被标记为有问题的请求部分。
required
这是一个总体性的错误,表示请求缺少某些必需部分。例如,创建代管区域的请求需要名称、DNS 名称和说明。如果缺少其中任何一个字段,请求都将失败并显示此错误。
建议执行的操作:填写必需参数,然后重试。
notFound
指定的资源不存在。
建议执行的操作:确保您使用的是现有资源的名称。
quotaExceeded
如果即将发生的更改超出当前配额,您会收到此错误。此配额与项目关联。例如,每个区域只能包含特定数量的资源记录集。如果需要增加配额,请联系 Google Cloud 销售团队。新项目会获得 Cloud DNS 资源配额和限制中指定的默认配额。如需了解 DNS 限制的所有不同维度,请参阅 Projects.get
操作。
建议执行的操作:检查您的项目以了解您为何已经使用了这么多资源。您可以在项目的 Google Cloud 控制台的配额页面上申请增加项目的配额。您也可以参考使用配额。
与代管区域相关的错误
本部分列出了与代管区域相关的错误。
invalidFieldValue
entity.managedZone.name
值无效。
如果代管区域名称不满足以下条件,则创建代管区域的操作可能会失败并显示此错误:以字母开头、以字母或数字结尾,并且仅包含小写字母、数字或短划线。
managedZoneDnsNameNotAvailable
指定的代管区域不可用,因此无法创建。
由于以下原因,创建代管区域的操作可能会失败并显示以下错误:
- 建议的区域的 DNS 名称已预留,例如句点 (
.
)、.com
或.co.uk
。 - 没有其他域名服务器可用来托管地区的 DNS 名称。Cloud DNS 使用域名服务器池,而这是一个有限池。任何域名服务器的 DNS 查询都必须明确映射到一个代管区域。如需了解详情,请参阅域名服务器限制。
建议执行的操作:如果您是相关 DNS 名称的注册所有者,请检查是否存在重叠的区域。如需为网域及其子网域设置 DNS,我们建议您创建一个父区域并在该区域中为每个子网域添加记录。
verifyManagedZoneDnsNameOwnership
请验证对
example.com
网域(或父级)的所有权,然后重试。
建议执行的操作:收到此错误后,您必须验证网域所有权,然后重试。
与代管记录相关的错误
本部分介绍与记录相关的错误。
containerNotEmpty
指定的资源并非空资源,因此无法删除。
建议执行的操作:如果要删除该资源,您必须先将其清空。
invalidZoneApex
指定的资源记录集无效,因为区域顶层只能包含一个特定类型的资源记录集。
DNS 环境中的 Apex
表示具有区域中允许的最少数量标签的 DNS 名称。它也是区域层次结构的顶部。区域的顶层相当于 ManagedZone.dnsName
的 DNS 名称。
此错误意味着您尝试进行的更改违反了 DNS 规则,即区域必须仅在顶部包含一个特定类型的资源记录集。以下操作可能导致此错误:
- 您试图删除顶层所需的
NS
资源记录集。 - 您试图删除顶层所需的
SOA
资源记录集。 - 您试图在顶层以外的位置创建
SOA
类型的资源记录集。
建议执行的操作:如果收到此错误,则表示您正在尝试执行 DNS 规则不允许的操作。请检查您的请求是否存在错误。无需删除必需的资源记录集。
invalidRecordCount
资源记录集
entity.change.additions[XX]
只能有一条记录,因为它的类型为<SOA_OR_CNAME>
。
DNS 规则要求 SOA
和 CNAME
资源记录集只能包含一条资源记录。如果您尝试创建违反这些规则的更改,则会收到此错误。例如:
{
kind: "dns#rrset"
name: "blog.foo.com.",
type: "CNAME",
rrdata: [ "www.foo.com.", "www2.foo.com." ],
...
}
建议执行的操作:如果收到此错误,请检查您的请求。您正在尝试执行不允许的操作。
cnameResourceRecordSetConflict
资源记录集
entity.change.additions[XX]
无效,因为 DNS 名称example.com
可以有一个 CNAME 资源记录集或多个其他类型的资源记录集,但不能同时包含两者。
如果您创建这两种类型的资源记录集,例如同一 DNS 名称同时包含 A 记录和 CNAME 记录,会发生此错误。此错误的常见原因是您尝试在区域顶层创建 CNAME 记录。此操作不可行,因为该记录会与必需的同名 SOA
和 NS
记录冲突。
建议执行的操作:在这两种类型之间二选一。
wildcardNotAllowed
指定资源记录集的类型不正确,不能成为通配符。
在 DNS 中,通配符是一种特殊类型的资源记录集,它与对不存在域名的请求相匹配。Cloud DNS 的一个限制是您无法创建 NS
类型的通配符资源记录集。
建议执行的操作:目前不支持通配符 NS
资源记录集。请联系 Cloud DNS 支持团队或加入 cloud-dns-discuss,分享您正尝试完成的操作。
recordTypeDisallowedAtZoneApex
指定的资源记录不能与任何其他记录类型(包括区域顶层所需的
SOA
记录)共存。
您不能将 CNAME
资源记录置于顶层,因为它不能与任何其他记录类型(包括区域顶层所需的 SOA
资源记录)共存。
建议执行的操作:使用 ALIAS
资源记录。ALIAS
资源记录是 Cloud DNS 自定义记录类型,其行为类似于 CNAME
资源记录,但只能在区域顶层使用,并且仅响应地址记录(A 或 AAAA)查询。如需了解详情,请参阅别名记录。
invalidValue
这是一个总体性的错误,表示您的请求无效,而与服务器的状态无关。此错误消息包含有问题请求部分的路径以及无效值。触发此错误的原因多种多样,例如:
- 您指定的资源记录集的名称无效。例如,
foo...bar
不是有效的 DNS 名称(中间标签为空)。 - 您指定的资源记录集的类型无效。例如,A 和 CNAME 为有效类型,但 XXX 不是有效类型。
- 您指定的资源记录集中没有任何记录。
- 您指定的资源记录数据无效。例如,
1.1.1.1
是类型 A 的有效资源记录数据。XXX 是类型 A 的无效资源记录数据。 - 您指定的资源记录集的 TTL 无效。TTL 必须是一个非负整数。
- 您指定的资源名称太长。
建议执行的操作:改正您的请求。
后续步骤
- 如需详细了解功能,请参阅 Cloud DNS 概览。
- 如需了解您在使用 Cloud DNS 时可能会遇到的常见问题的解决方案,请参阅问题排查。
- 如需获取其他帮助,请参阅支持。