使用 Rulesets API 部署规则集。要部署规则集,请向 phase 入口点规则集 添加一条 "action": "execute" 的规则,并在操作参数中指定要执行的规则集 ID。每部署一个规则集都使用单独的规则。
执行规则集的规则包含:
- 要执行的规则集 ID,包含在
action_parameters.id中。 - 表达式。
execute操作。
当请求满足表达式时,规则集中的规则会执行。
以下示例通过添加一条执行托管规则集的规则,将 Cloudflare Managed Ruleset(ID 为 $ZONE_ID)的 http_request_firewall_managed phase。
Required API token permissions
At least one of the following token permissions is required:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"action": "execute",
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee"
},
"expression": "true",
"description": "Execute Cloudflare Managed Ruleset on my zone ruleset"
}
]
}'{
"result": {
"id": "<ZONE_PHASE_RULESET_ID>",
"name": "Zone-level Ruleset 1",
"description": "",
"kind": "zone",
"version": "latest",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "execute",
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee",
"version": "3"
},
"expression": "true",
"description": "Execute Cloudflare Managed Ruleset on my zone ruleset",
"last_updated": "2021-03-18T18:08:14.003361Z",
"ref": "<RULE_REF>",
"enabled": true
}
],
"last_updated": "2021-03-18T18:08:14.003361Z",
"phase": "http_request_firewall_managed"
},
"success": true,
"errors": [],
"messages": []
}有关部署规则集的更多示例,请参阅以下页面:
请参阅 使用托管规则集 和 使用自定义规则集 了解更多信息。
有关编辑与部署规则集的可用 API 端点的更多信息,请参阅 更新或部署规则集。