跳转到内容
搜索文档

批量记录变更

最后更新 查看 MarkdownAgent 设置

Cloudflare 允许您在一次操作中应用 zone 记录的多个变更。您可以使用仪表板批量删除 DNS 记录或更新其代理状态,或使用 API执行更多批量操作。

可用性和限制

批量 DNS 记录变更在所有套餐上可用。

一次操作中可操作的记录数量取决于您的 zone 套餐:

  • Free:200
  • Pro:3,500
  • Business:3,500
  • Enterprise:3,500

使用仪表板

批量编辑代理状态

AAAAACNAME 记录可以被代理。DNS 记录的 Proxy status(代理状态) 影响 Cloudflare 如何响应对该记录的 DNS 查询

  1. 在 Cloudflare 仪表板中,转到 DNS Records(DNS 记录) 页面。

    Go to Records ↗
  2. 选择要设置代理状态的 DNS 记录。请注意,只有 AAAAACNAME 记录可以被代理。

  3. 选择 Edit records(编辑记录)

  4. 选择要应用于所选记录的代理状态。

  5. 选择 Save(保存) 确认。

您只能批量将记录设置为 Proxied(已代理)DNS only(仅 DNS)。这意味着如果您的选择同时包括代理和仅 DNS 记录,其中一些将更新代理状态,而其他将保持原始值:

例如,如果您选择以下记录并在上述步骤 4中批量编辑其代理状态,选择 Proxied(已代理),结果将是:

所选记录 原始代理状态 结果代理状态
www DNS only(仅 DNS) Proxied(已代理)
blog DNS only(仅 DNS) Proxied(已代理)
docs Proxied(已代理) Proxied(已代理)

批量删除记录

  1. 在 Cloudflare 仪表板中,转到 DNS Records(DNS 记录) 页面。

    Go to Records ↗
  2. 选择要删除的 DNS 记录。

  3. 选择 Delete records(删除记录)

  4. Delete DNS records(删除 DNS 记录) 提示中,输入 DELETE 并选择 Delete(删除) 确认。

使用 API

Batched DNS record changes 端点允许您在单个请求中触发 DELETESPATCHESPUTSPOSTS 的执行。

标签和注释也支持批量变更。

您在 /batch 请求正文中指定的操作始终按以下顺序执行:

  1. Deletes
  2. Patches
  3. Puts
  4. Posts

在每个列表中,每个单独的操作按照您提供的 DNS 记录顺序执行。如果任何单独的操作失败,不会应用任何变更,API 返回遇到的第一个错误。

需要注意的方面

对于您在 /batch 请求正文中列出的每个操作,请考虑所需信息以及未指定字段的行为:

  • deletes:每个记录对象只需要 id。您可以保留 name 等额外参数以提高可读性,但除 id 外的其他字段将被忽略。
  • patches:除每个记录 id 外,您应指定要更新的字段。所有未指定的字段将保持不变。
  • puts:您必须指定每个记录 idcontentnametype。您还应指定要设置为非默认值的任何其他字段。任何未指定的字段将假设每个记录类型的默认值。此操作作为覆盖,因此给定记录中的所有字段始终受影响。
  • posts:由于您正在创建新记录,不需要 id。有关字段定义,请参阅 Create DNS Record 端点并在请求正文规范下选择所需的记录类型。

示例请求

在此示例中,"puts" 下第一个记录列出的 proxied 字段将假设默认值(false)。

{
    "deletes": [
        {
            "id": "2bff0ebc4df64beaa44b0dca93e37a28"
        },
        {
            "id": "31d1d6e79ce04b8d93cbc5a13401d728"
        }
    ],
    "patches": [
        {
            "id": "62276440f783445380480484648c1017",
            "content": "192.0.2.46"
        },
        {
            "id": "c942d948dc2343b9b97aed78479c9fb9",
            "name": "update.example.com",
            "proxied": true
        }
    ],
    "puts": [
        {
            "id": "a50364543094428abde0f14061d42b0e",
            "content": "192.0.2.50",
            "name": "change.example.com",
						"type": "A",
            "ttl:": 1
        },
        {
            "id": "3bce0920f19d43949498bd067b05dfa9",
            "content": "192.0.2.45",
            "name": "no-change.example.com",
						"type": "A",
            "proxied": false,
            "ttl:": 3000
        }
    ],
    "posts": [
        {
            "name": "@",
            "type": "A",
            "content": "192.0.2.41",
            "proxied": false,
            "ttl": 3000
        },
        {
            "name": "a.example.com",
            "type": "A",
            "content": "192.0.2.42",
            "proxied": true
        }
    ]
}

这篇文档对您有帮助吗?