← Cloudflare Cache / cache / how-to / cache-rules
Vytvoření pravidla přes API
Použijte Rulesets API vytvořit cache rule přes API. Postup konfigurace Cloudflare API najdete v Dokumentace API.
Základní nastavení pravidla
Při vytváření cache rule přes API se ujistěte, že:
- Nastavte akci pravidla na
set_cache_settings. - Definujte parametry v
action_parameterspole podle nastavení které chcete přepsat pro odpovídající požadavky. - Nasaďte pravidlo do
http_request_cache_settingsje vstupní sada pravidel dané fáze.
Postup
- Použijte Seznam sad pravidel zóny metodu k získání seznamu pravidel, která již existují v
http_request_cache_settingsje vstupní sada pravidel dané fáze. - Pokud fázový ruleset neexistuje, vytvořte jej pomocí Vytvoření rulesetu zóny operaci. Ve vlastnostech nového rulesetu nastavte následující hodnoty:
- kind:
zone - fáze:
http_request_cache_settings
- kind:
- Použijte Aktualizace sady pravidel zóny operaci k přidání cache rule do seznamu pravidel rulesetu. Případně pravidlo zahrňte do Vytvoření rulesetu zóny požadavek uvedený v předchozím kroku.
- (Volitelné) Chcete-li aktualizovat existující pravidlo mezipaměti, použijte Aktualizace pravidla v sadě pravidel zóny operaci. Příklad najdete v části níže.
Příklady požadavků
Tyto příklady nastavují všechny Cache Rules zóny na jediné pravidlo, protože jejich přímé použití způsobí odstranění všech stávajících pravidel.
Příklad: Cachování všeho pro example.com
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "(http.host eq \"example.com\")",
"description": "cache everything for example.com",
"action": "set_cache_settings",
"action_parameters": {
"cache": true
}
}
]
}'Příklad: Prodloužení read timeoutu pro klienty Android
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "(http.user_agent contains \"Android\")",
"description": "extend read timeout for android clients",
"action": "set_cache_settings",
"action_parameters": {
"cache": true,
"read_timeout": 300
}
}
]
}'Příklad: Vypnutí Cache Reserve pro často aktualizované prostředky
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "(starts_with(http.request.uri, \"/feed/\"))",
"description": "disable cache reserve for frequently updated assets",
"action": "set_cache_settings",
"action_parameters": {
"cache": true,
"cache_reserve": {
"enabled": false
}
}
}
]
}'Příklad: Vypnutí výchozích cache TTL
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "(http.host eq \"example.com\")",
"description": "turn off default cache ttls",
"action": "set_cache_settings",
"action_parameters": {
"cache": true,
"edge_ttl": {
"mode": "bypass_by_default"
}
}
}
]
}'Příklad: Cachování očekávaných odpovědí Vary
Aktualizace vstupní sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "(http.host eq \"example.com\")",
"description": "cache expected vary responses",
"action": "set_cache_settings",
"action_parameters": {
"cache": true,
"vary": {
"default": {
"action": "bypass"
},
"headers": {
"accept": {
"action": "normalize",
"media_types": [
"text/html",
"application/json"
]
},
"accept-language": {
"action": "normalize",
"languages": [
"en",
"fr",
"de"
]
}
}
}
}
}
]
}'Příklad: Aktualizace pozice existujícího pravidla
Aktualizace pravidla v sadě pravidel zóny
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 '{
"expression": "(http.host eq \"example.com\")",
"description": "cache everything for example.com",
"action": "set_cache_settings",
"action_parameters": {
"cache": true
},
"enabled": true,
"position": {
"before": "da5e8e506c8e7877fe06cdf4c41add54"
}
}'Požadovaná oprávnění API tokenu
API token použitý v API požadavcích pro správu Cache Rules musí mít následující oprávnění:
- Zóna > Cache Rules > Úprava
- Account Rulesets > Úprava
- Account Filter Lists > Úprava