INTEGRITY Dokumentace

Vytvořte pravidlo transformace hlavičky požadavku přes API

Použijte Rulesets API k vytváření pravidel Request Header Transform Rules přes API. Přečtěte si Galerie příkladů pravidel pro běžné případy použití.

Pokud používáte Terraform, přečtěte si Konfigurace Transform Rules pomocí Terraformu.

Základní nastavení pravidla

Při vytváření request header transform rule přes API se ujistěte, že:

Postup

Pravidlo transformace hlaviček požadavku vytvoříte pro danou zónu přes API podle tohoto postupu:

  1. Použijte Seznam sad pravidel zóny operaci pro kontrolu, zda již existuje ruleset pro http_request_late_transform fázi na úrovni zóny.

  2. Pokud fázový ruleset neexistuje, vytvořte jej pomocí Vytvoření rulesetu zóny operace. Ve vlastnostech nového rulesetu nastavte následující hodnoty:

    • typ: zone
    • fáze: http_request_late_transform
  3. Použijte Aktualizace sady pravidel zóny operaci pro přidání pravidla úpravy hlaviček požadavku do seznamu pravidel rulesetu. Případně můžete pravidlo zahrnout do Vytvoření rulesetu zóny požadavek uvedený v předchozím kroku.

Ujistěte se, že váš API token má oprávnění požadovaná oprávnění k provádění operací API.

Příklady požadavků

Příklad: Přidání hlavičky HTTP požadavku se statickou hodnotou

Následující příklad nastavuje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla transformace hlaviček požadavku, které přidává HTTP hlavičku požadavku se statickou hodnotou pomocí Aktualizace sady pravidel zóny operace. Odpověď bude obsahovat úplnou definici aktualizovaného rulesetu.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
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": [
				{
						"ref": "add_header_source",
						"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
						"description": "My first request header transform rule",
						"action": "rewrite",
						"action_parameters": {
								"headers": {
										"X-Source": {
												"operation": "set",
												"value": "Cloudflare"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Late Transform Ruleset",
		"description": "Zone-level ruleset that will execute Late Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "add_header_source",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"headers": {
						"X-Source": {
							"operation": "set",
							"value": "Cloudflare"
						}
					}
				},
				"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
				"description": "My first request header transform rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_request_late_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.

Příklad: Přidání hlavičky HTTP požadavku s dynamickou hodnotou

Následující příklad nastavuje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla transformace hlaviček požadavku, které přidává HTTP hlavičku požadavku s dynamickou hodnotou pomocí Aktualizace sady pravidel zóny operace. Odpověď bude obsahovat úplnou definici aktualizovaného rulesetu.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
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": [
				{
						"ref": "add_header_bot_score",
						"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
						"description": "My first request header transform rule",
						"action": "rewrite",
						"action_parameters": {
								"headers": {
										"X-Bot-Score": {
												"operation": "set",
												"expression": "to_string(cf.bot_management.score)"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Late Transform Ruleset",
		"description": "Zone-level ruleset that will execute Late Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "add_header_bot_score",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"headers": {
						"X-Bot-Score": {
							"operation": "set",
							"expression": "to_string(cf.bot_management.score)"
						}
					}
				},
				"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
				"description": "My first request header transform rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_request_late_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.

Příklad: Odstranění hlavičky HTTP požadavku

Následující příklad nastavuje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla transformace hlaviček požadavku, které odebírá HTTP hlavičku požadavku pomocí Aktualizace sady pravidel zóny. Odpověď bude obsahovat úplnou definici sady pravidel, kterou jste aktualizovali.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
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": [
				{
						"ref": "remove_header_cf_connecting_ip",
						"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
						"description": "My first request header transform rule",
						"action": "rewrite",
						"action_parameters": {
								"headers": {
										"cf-connecting-ip": {
												"operation": "remove"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Late Transform Ruleset",
		"description": "Zone-level ruleset that will execute Late Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "remove_header_cf_connecting_ip",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"headers": {
						"cf-connecting-ip": {
							"operation": "remove"
						}
					}
				},
				"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
				"description": "My first request header transform rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_request_late_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.


Požadovaná oprávnění API tokenu

API token použitý v API požadavcích pro správu Request Header Transform Rules musí mít alespoň následující oprávnění: