使用 Rulesets API 通过 API 为托管规则集配置载荷记录。
-
使用 Get a zone entry point ruleset 操作获取以下 ID:
-
使用 Update a zone ruleset rule 操作更新您在上一步中识别的规则。
在规则的
action_parameters对象中包含matched_data对象以配置载荷记录。matched_data对象的结构如下:"action_parameters": { // ... "matched_data": { "public_key": "<PUBLIC_KEY_VALUE>" } }将
<PUBLIC_KEY_VALUE>替换为要用于载荷记录的公钥。您可以在命令行中或在 Cloudflare 仪表板中生成公钥。
此示例为已部署到 ID 为 $ZONE_ID 的 zone 的 Cloudflare Managed Ruleset 配置载荷记录。
-
调用 Get a zone entry point ruleset 操作,获取
http_request_firewall_managed阶段入口点规则集中当前配置的规则。Get a zone entry point rulesetbash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID "name": "default", "description": "", "source": "firewall_managed", "kind": "zone", "version": "3", "rules": [ // (...) { "id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute` rule ID "version": "1", "action": "execute", "expression": "true", "last_updated": "2024-01-20T14:21:28.643979Z", "ref": "1bdb49371c1f46958fc8b985efcb79e7", "enabled": true, "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", // "Cloudflare Managed Ruleset" ID "version": "latest" } } // (...) ], "last_updated": "2024-01-20T14:29:00.190643Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] } -
为下一步保存以下 ID:
- 入口点规则集的 ID:
060013b1eeb14c93b0dcd896537e0d2c - 部署 Cloudflare Managed Ruleset 的
execute规则的 ID:1bdb49371c1f46958fc8b985efcb79e7
要在
rules数组中找到正确的规则,请搜索action_parameters>id中包含 Cloudflare Managed Ruleset ID()的 execute规则。 - 入口点规则集的 ID:
-
调用 Update a zone ruleset rule 操作以更新您识别的规则配置。该规则现在将包含载荷记录配置(
matched_data对象)。Update a zone ruleset rulebash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/060013b1eeb14c93b0dcd896537e0d2c/rules/1bdb49371c1f46958fc8b985efcb79e7" \ --request PATCH \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", "matched_data": { "public_key": "Ycig/Zr/pZmklmFUN99nr+taURlYItL91g+NcHGYpB8=" } }, "expression": "true" }'响应将包含更新规则后的完整规则集。
有关通过 API 部署托管规则集的更多信息,请参阅 Ruleset Engine 文档中的 部署托管规则集。
要禁用托管规则集的载荷记录:
-
使用 Update a zone ruleset rule 操作更新部署托管规则集的规则(带有
"action": "execute"的规则)。 -
修改规则定义,使
action_parameters中不包含matched_data对象。
例如,以下 PATCH 请求更新 ID 为 $RULE_ID、部署 Cloudflare Managed Ruleset 的规则,以禁用载荷记录:
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules/$RULE_ID" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "execute",
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee"
},
"expression": "true"
}'有关获取入口点规则集 ID 和要更新的规则 ID 的详情,请参阅 配置并启用载荷记录。