Cloudflare では、ゾーンのレコードに対する複数の変更を 1 回の操作で適用できます。ダッシュボード では DNS レコードの削除や プロキシステータス の一括更新ができ、API ではさらに幅広い一括操作ができます。
DNS レコードの一括変更は、すべてのプランで利用できます。
1 回の操作で扱えるレコード数は、ゾーンのプランによって異なります。
- Free: 200
- Pro: 3,500
- Business: 3,500
- Enterprise: 3,500
A、AAAA、CNAME レコードは プロキシ できます。DNS レコードの Proxy status は、そのレコードへの DNS クエリに対する Cloudflare の応答 に影響します。
-
Cloudflare ダッシュボードで DNS Records ページを開きます。
Records を開く ↗ -
プロキシステータスを設定する DNS レコードを選択します。プロキシできるのは
A、AAAA、CNAMEレコードだけです。 -
Edit records を選択します。
-
選択したレコードに適用するプロキシステータスを選びます。
-
確定するには Save を選択します。
一括操作では、レコードを Proxied または DNS only のどちらかにしか設定できません。選択にプロキシ済みと DNS only のレコードが混在している場合、一部だけが更新され、ほかは元の値のままになります。
たとえば、次のレコードを選択してプロキシステータスを一括編集し、上記の手順 4 で Proxied を選んだ場合の結果は次のとおりです。
| 選択したレコード | 元のプロキシステータス | 変更後のプロキシステータス |
|---|---|---|
www |
DNS only | Proxied |
blog |
DNS only | Proxied |
docs |
Proxied | Proxied |
-
Cloudflare ダッシュボードで DNS Records ページを開きます。
Records を開く ↗ -
削除する DNS レコードを選択します。
-
Delete records を選択します。
-
Delete DNS records の確認で
DELETEと入力し、Delete を選択して確定します。
Batched DNS record changes エンドポイントでは、1 回のリクエストで DELETES、PATCHES、PUTS、POSTS を実行できます。
タグとコメント も、一括変更で使えます。
/batch リクエスト本文で指定した操作は、常に次の順で実行されます。
- Deletes
- Patches
- Puts
- Posts
この 4 つのリストの中では、指定した DNS レコードの順に各操作が実行されます。いずれかの操作が失敗すると、変更は適用されず、API は最初に遭遇したエラーを返します。
/batch リクエスト本文に列挙する各操作について、必要な情報と、未指定フィールドの扱いを確認してください。
deletes: 各レコードオブジェクトで必要なのはidだけです。読みやすさのためにnameなどの追加パラメーターを残しても構いませんが、この場合id以外のフィールドは無視されます。patches: 各レコードのidに加えて、更新するフィールドを指定します。指定していないフィールドはそのまま残ります。puts: 各レコードのid、content、name、typeを指定する必要があります。デフォルト以外の値にしたいフィールドも指定してください。指定していないフィールドは、各 レコードタイプ のデフォルト値になります。この操作は上書きなので、対象レコードのすべてのフィールドが常に影響を受けます。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
}
]
}