cloudflare通过 API 创建缓存规则
在做cloudflare的api开发的时候,发现创建缓存规则的说明文档非常的复杂,所以这里做一下记录。
1.无规则集的情况下
官方相关说明链接,不明白的也可以去自行看看官方文档。
https://developers.cloudflare.com/api/operations/createZoneRuleset
其实这个接口,严格说是创建规则集的,只是创建规则集,必须要同时创建一个规则。
而且,由于是创建规则集,所以不用传入规则集id,只需要传入域名id即可。
示例代码:
curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets \ --header "Authorization: Bearer <API_TOKEN>" \ --header "Content-Type: application/json" \ --data '{ "kind":"zone", "name":"default", "phase":"http_request_cache_settings", "rules": [ { "expression": "(http.host eq \"example.com\")", "description": "cache everything for example.com", "action": "set_cache_settings", "action_parameters": { "cache": true } } ] }'
2.有规则集的情况下
如果已经有规则集的情况,就先查询规则集,获取到规则集id。这里需要两个必要id,域名id和规则集id,这个是需要先请求接口获取的。
官方相关说明链接,不明白的也可以去自行看看官方文档。
https://developers.cloudflare.com/cache/how-to/cache-rules/create-api/
https://developers.cloudflare.com/api/operations/createZoneRulesetRule
示例代码:
curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer <API_TOKEN>" \ --header "Content-Type: application/json" \ --data '{ "rules": [ { "expression": "(http.host eq \"example.com\")", "description": "cache everything for example.com", "action": "set_cache_settings", "action_parameters": { "cache": true } } ] }'
最后,需要注意的是,如果规则集已经存在的情况下,想偷懒是没用的,必须要先查询规则集id,然后采用有规则集的方式创建规则。
这样,才能做到新站老站,都通用的情况,当然,同一个规则,如果反复执行,会反复插入的情况,我们这里,还可以做个判断,
如果规则名已经存在的情况,就跳过。
编辑:
阅读量:64
url链接:https://www.qozr.com/cms_cloudflare-tong-guo-api-chuang-jian-huan-cun-gui-ze.html
Tag标签: cloudflare
更多新闻
Copyright © 千欧中软 版权所有 https://www.qozr.com seo | 网站建设 [渝ICP备15005074号] 渝公网安备50011802011077