← Правила Cloudflare / rules / snippets
Настройка Snippets через API
Snippets можно создавать с помощью Cloudflare API.
Необходимые разрешения
API-токен используемый в запросах API для управления Snippets, должен иметь как минимум следующее разрешение:
- Zone > Snippets > Изменить
Конечные точки
Чтобы получить полную конечную точку, добавьте перечисленные ниже конечные точки Snippets к базовому URL-адресу API Cloudflare:
https://api.cloudflare.com/client/v4 {zone_id} аргумент представляет собой ID зоны (шестнадцатеричная строка). Это значение можно найти в панели управления Cloudflare.
В следующей таблице приведена сводка доступных операций.
| Операция | Метод + конечная точка |
|---|---|
| Список всех сниппетов кода | GET /zones/{zone_id}/snippets |
| Создание/обновление сниппета кода | PUT /zones/{zone_id}/snippets/{snippet_name} |
| Получение сведений о сниппете кода | GET /zones/{zone_id}/snippets/{snippet_name} |
| Получение содержимого сниппета кода | GET /zones/{zone_id}/snippets/{snippet_name}/content |
| Удаление сниппета кода | DELETE /zones/{zone_id}/snippets/{snippet_name} |
| Список правил сниппетов | GET /zones/{zone_id}/snippets/snippet_rules |
| Создание/обновление/удаление правил сниппетов | PUT /zones/{zone_id}/snippets/snippet_rules |
| Удаление всех правил сниппетов | DELETE /zones/{zone_id}/snippets/snippet_rules |
Примеры вызовов API
Создание/обновление сниппета кода
Чтобы создать или обновить Snippet, используйте следующий PUT запрос. Сниппет называется $SNIPPET_NAME а тело содержит код JavaScript.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Snippets Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/$SNIPPET_NAME" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--form "[email protected]" \
--form "metadata={\"main_module\": \"example.js\"}"Имя snippet может содержать только символы a-z, 0-9, а также _ (подчеркивание). Имя должно быть уникальным в пределах зоны. После создания snippet изменить его имя нельзя.
Обязательные параметры тела запроса:
files: Файл с вашим кодом JavaScript.metadata: объект, содержащийmain_module, которое должно совпадать с именем загружаемого файла.
Чтобы этот пример работал, сохраните код JavaScript в файле с именем example.js, а затем выполнить curl команду с PUT запрос из папки, где example.js находится.
{
"errors": [],
"messages": [],
"success": true,
"result": {
"created_on": "2023-07-24-00:00:00",
"modified_on": "2023-07-24-00:00:00",
"snippet_name": "snippet_name_01"
}
}Чтобы развернуть новый snippet, необходимо создать правило snippet. Выражение правила сниппета определяет, когда будет выполняться код сниппета.
Создание/обновление/удаление правил сниппетов
После создания сниппета кода вы можете привязать его к правилам. Это делается с помощью следующего PUT запрос к snippet_rules конечная точка.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Snippets Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/snippet_rules" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"description": "Trigger snippet on specific cookie",
"enabled": true,
"expression": "http.cookie eq \"a=b\"",
"snippet_name": "snippet_name_01"
}
]
}'