INTEGRITY Dokumentace

Vytvořte Bulk Redirects přes API

Chcete-li vytvořit Bulk Redirects přes API, musíte:

  1. Vytvořte Bulk Redirect List přes API.
  2. Přidejte položky (přesměrování URL) do seznamu vytvořeného v kroku 1.
  3. Vytvořte Bulk Redirect Rule přes API, které aktivuje seznam vytvořený v kroku 1.

1. Vytvořte Bulk Redirect List přes API

Použijte Vytvořte seznam operaci pro vytvoření nového Bulk Redirect List. Seznam kind musí být redirect.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
Vytvořte seznam
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rules/lists" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "my_redirect_list",
		"description": "My redirect list.",
		"kind": "redirect"
	}'
{
	"result": {
		"id": "f848b6ccb07647749411f504d6f88794",
		"name": "my_redirect_list",
		"description": "My redirect list.",
		"kind": "redirect",
		"num_items": 0,
		"num_referencing_filters": 0,
		"created_on": "2021-10-28T09:11:42Z",
		"modified_on": "2021-10-28T09:11:42Z"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Poznamenejte si ID seznamu, budete ho potřebovat v dalším kroku.

Další informace o operacích se seznamy naleznete v Lists API dokumentace.

2. Přidání položek do seznamu

Použijte Vytvořte položky seznamu operaci pro přidání položek přesměrování URL adres do seznamu. Do URL adresy koncového bodu zadejte ID seznamu z předchozího kroku:

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
Vytvořte položky seznamu
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rules/lists/f848b6ccb07647749411f504d6f88794/items" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '[
		{
				"redirect": {
						"source_url": "example.com/blog/",
						"target_url": "https://example.com/blog/latest"
				}
		},
		{
				"redirect": {
						"source_url": "example.net/",
						"target_url": "https://example.net/under-construction.html",
						"status_code": 307
				}
		}
	]'
{
	"result": {
		"operation_id": "92558f8b296d4dbe9d0419e0e53f6622"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Jedná se o asynchronní operaci. Odpověď bude obsahovat operation_id který použijete ke kontrole, zda operace proběhla úspěšně, pomocí Získat stav hromadné operace operace:

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
Získat stav hromadné operace
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rules/lists/bulk_operations/92558f8b296d4dbe9d0419e0e53f6622" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Jakmile operace úspěšně skončí, odpověď bude vypadat přibližně takto:

Odpověď
{
	"result": {
		"id": "92558f8b296d4dbe9d0419e0e53f6622",
		"status": "completed",
		"completed": "2021-10-28T09:15:42Z"
	},
	"success": true,
	"errors": [],
	"messages": []
}

3. Vytvoření pravidla Bulk Redirect Rule přes API

Bulk Redirect Lists jsou v podstatě kontejnery přesměrování URL, proto musíte přesměrování v seznamu povolit vytvořením Bulk Redirect Rule.

Přidejte Bulk Redirect Rules do vstupní sada pravidel http_request_redirect fázi na úrovni účtu. Viz Rulesets API dokumentaci, kde najdete další informace o vytváření sady pravidel a zadáním seznamu pravidel pro sadu pravidel.

Bulk Redirect Rule musí obsahovat:

Následující požadavek Vytvořte account ruleset operace vytvoří vstupní ruleset fáze pro http_request_redirect fázi na úrovni účtu a definuje jedno pravidlo přesměrování. Tuto operaci použijte, pokud jste ještě nevytvořili vstupní sadu pravidel fáze pro http_request_redirect fázi.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
Vytvořte account ruleset
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "My redirect ruleset",
		"kind": "root",
		"phase": "http_request_redirect",
		"rules": [
				{
						"ref": "enable_my_redirect_list",
						"expression": "http.request.full_uri in $my_redirect_list",
						"description": "Bulk Redirect rule.",
						"action": "redirect",
						"action_parameters": {
								"from_list": {
										"name": "my_redirect_list",
										"key": "http.request.full_uri"
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "528f4f03bf0da53a29907199625867be",
		"name": "My redirect ruleset",
		"kind": "root",
		"version": "1",
		"rules": [
			{
				"ref": "enable_my_redirect_list",
				"id": "8da312df846b4258a05bcd454ea943be",
				"version": "1",
				"expression": "http.request.full_uri in $my_redirect_list",
				"description": "Bulk Redirect rule.",
				"action": "redirect",
				"action_parameters": {
					"from_list": {
						"name": "my_redirect_list",
						"key": "http.request.full_uri"
					}
				},
				"last_updated": "2021-10-28T09:20:42Z"
			}
		],
		"last_updated": "2021-10-28T09:20:42Z",
		"phase": "http_request_redirect"
	},
	"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.

Pokud pro danou fázi již existuje vstupní sada pravidel (entry point ruleset) pro http_request_redirect fázi použijte Aktualizace rulesetu účtu operaci, jako v následujícím příkladu:

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
Aktualizace rulesetu účtu
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "My redirect ruleset",
		"kind": "root",
		"phase": "http_request_redirect",
		"rules": [
				{
						"ref": "eval_redirects_list_1",
						"expression": "http.request.full_uri in $my_redirect_list_1",
						"description": "Bulk Redirect rule 1",
						"action": "redirect",
						"action_parameters": {
								"from_list": {
										"name": "my_redirect_list_1",
										"key": "http.request.full_uri"
								}
						}
				},
				{
						"ref": "eval_redirects_list_2",
						"expression": "http.request.full_uri in $my_redirect_list_2",
						"description": "Bulk Redirect rule 2",
						"action": "redirect",
						"action_parameters": {
								"from_list": {
										"name": "my_redirect_list_2",
										"key": "http.request.full_uri"
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "67013aa153df4e5fbda92f92bc979331",
		"name": "default",
		"description": "",
		"kind": "root",
		"version": "2",
		"rules": [
			{
				"ref": "eval_redirects_list_1",
				"id": "8be62ab2ef9a4a41af30c24ff8e73e41",
				"version": "1",
				"action": "redirect",
				"action_parameters": {
					"from_list": {
						"name": "my_redirect_list_1",
						"key": "http.request.full_uri"
					}
				},
				"expression": "http.request.full_uri in $my_redirect_list_1",
				"description": "Bulk Redirect rule 1",
				"last_updated": "2021-12-03T15:38:51.658387Z",
				"ref": "8be62ab2ef9a4a41af30c24ff8e73e41",
				"enabled": true
			},
			{
				"ref": "eval_redirects_list_2",
				"id": "97e38797fb2b4b22a4919800f1318a5c",
				"version": "1",
				"action": "redirect",
				"action_parameters": {
					"from_list": {
						"name": "my_redirect_list_2",
						"key": "http.request.full_uri"
					}
				},
				"expression": "http.request.full_uri in $my_redirect_list_2",
				"description": "Bulk Redirect rule 2",
				"last_updated": "2021-12-03T15:38:51.658387Z",
				"ref": "97e38797fb2b4b22a4919800f1318a5c",
				"enabled": true
			}
		],
		"last_updated": "2021-12-03T15:38:51.658387Z",
		"phase": "http_request_redirect"
	},
	"success": true,
	"errors": [],
	"messages": []
}

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

API token použitý v API požadavcích pro správu objektů Bulk Redirects (seznamů, položek seznamu a pravidel) musí mít alespoň následující oprávnění:

  • Účet > Bulk URL Redirects > Úprava
  • Účet > Account Filter Lists > Úprava
  • Mass URL Redirects Write
  • Account Rule Lists Write