网站建设

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