错误消息

本页面介绍您在使用 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 Console 的配额页面上申请增加项目的配额。您也可以参考使用配额

与代管区域相关的错误

本部分列出了与代管区域相关的错误。

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 规则要求 SOACNAME 资源记录集只能包含一条资源记录。如果您尝试创建违反这些规则的更改,则会收到此错误。例如:

  {
    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 记录。此操作不可行,因为该记录会与必需的同名 SOANS 记录冲突。

建议执行的操作:在这两种类型之间二选一。

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 时可能会遇到的常见问题的解决方案,请参阅问题排查
  • 如需获取其他帮助,请参阅支持