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,然后采用有规则集的方式创建规则。
这样,才能做到新站老站,都通用的情况,当然,同一个规则,如果反复执行,会反复插入的情况,我们这里,还可以做个判断,
如果规则名已经存在的情况,就跳过。
编辑:
阅读量:178
url链接:https://www.qozr.com/cms_cloudflare-tong-guo-api-chuang-jian-huan-cun-gui-ze.html
Tag标签: cloudflare
上一篇: thinkphp 直接在模板中使用 PHP 代码读取缓存
下一篇: 在线颜色选择器 颜色格式转换器
更多新闻
Copyright © 千欧中软 版权所有 www.qozr.com seo | 网站建设 [渝ICP备15005074号]
渝公网安备50011802011077 | sitemap