Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Что вы узнаете
Из этого руководства вы узнаете:
- Добавьте правило, которое влияет на запрос и ответ.
- Посмотреть результаты применения правила.
Что вам понадобится
- Хотя бы одно правило в прокси-сервере (также рассматривается в руководстве "Начало работы").
curl, установленный на вашем компьютере, чтобы выполнять вызовы API из командной строки.
Как добавить правило Spike Arrest
В этом руководстве вы добавите и настроите правило SpikeArrest, чтобы защитить целевой сервис от внезапных скачков трафика, которые могут быть вызваны увеличением использования, ошибками клиентов или вредоносными атаками. Если количество запросов превышает лимит, API возвращает ошибку HTTP 500.
Чтобы добавить правила Spike Arrest в прокси-сервер API:
- Войдите в аккаунт на сайте apigee.com/edge.
- На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
- Выберите прокси-сервер API, к которому вы хотите добавить правило Spike Arrest.
Если вы выполнили инструкции из руководства по началу работы, добавьте его в прокси-сервер getstarted, созданный в разделе Создание прокси-сервера API.
- В редакторе нового прокси-сервера API нажмите на вкладку Разработка:

Редактор прокси-сервера API позволяет просматривать структуру прокси-сервера API и настраивать его поток. В редакторе можно посмотреть визуальное представление потока запросов и ответов прокси-сервера, а также отредактировать XML-код, определяющий прокси-сервер.
- На панели навигации слева нажмите PreFlow в разделе Proxy Endpoints > default. (В других руководствах мы расскажем о потоках.)
- Нажмите верхнюю кнопку +Шаг, соответствующую запросу PreFlow. Появится список всех правил, которые можно создать, с разбивкой по категориям.

- В категории "Управление трафиком" выберите Spike Arrest. Откроется диалоговое окно "Новые правила":

- Оставьте названия по умолчанию и нажмите Добавить. Новое правило прикреплено к потоку PreFlow запроса.
- В навигаторе убедитесь, что в разделе Конечные точки прокси > по умолчанию выбран вариант PreFlow, и обратите внимание на следующее в редакторе прокси API:
- Новое правило Spike Arrest-1 добавлено в раздел Policies (Правила) в навигаторе в левой части редактора прокси API.
- Значок Spike Arrest-1 добавлен в режим конструктора в верхней центральной части редактора прокси API, который представляет собой визуальное отображение потоков сообщений прокси.
- XML-код правила отображается в режиме просмотра кода в нижней центральной части редактора прокси API.

- В навигаторе выберите Spike Arrest-1 в разделе Policies (Правила) и обратите внимание на следующее в редакторе прокси API:
- Сведения о правилах отображаются в режиме конструктора в верхней центральной части редактора прокси API.
- XML-код правила отображается в режиме просмотра кода в нижней центральной части редактора прокси API.
- Значения XML-элементов и атрибутов для правила отображаются в инспекторе свойств в правой части редактора прокси API.

-
В XML-файле правила измените значение элемента
<Rate>на 1pm (что соответствует примерно двум запросам каждые 60 секунд в облаке).Вы можете указать частоту в виде целого числа в минуту (
pm) или в секунду (ps). Это очень низкий лимит, который используется только в этом руководстве для демонстрации правил. Обычно устанавливается гораздо более высокий лимит.Обратите внимание, что значение
Rateв окне "Инспектор свойств" также изменилось на "13:00". Вы также можете изменить значение Частоты в окне "Инспектор свойств", и оно будет отражено в XML-представлении. - Нажмите Сохранить, чтобы сохранить текущую версию с внесенными изменениями.
-
Вызовите API с помощью
curl, заменив название организации Apigee на org_name:curl "http://org_name-test.apigee.net/getstarted"
Пример:
curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool
Убедитесь, что запрос выполнен успешно и вы видите тот же XML-ответ, что и раньше. (Вы также можете просто ввести URL в веб-браузере.)
- Выполните команду
curl(или обновите окно браузера) ещё два или три раза в течение минуты. Вы увидите следующее сообщение, поскольку превысили ограничение частоты для правила:{ "fault": { "faultstring":"Spike arrest violation. Allowed rate : 1pm", "detail": { "errorcode":"policies.ratelimit.SpikeArrestViolation"} } }Если вы попытаетесь совершить больше звонков в течение минуты, сообщение об ошибке должно появиться снова.
- Измените правила, чтобы установить для параметра <
Rate>значение 15pm (что соответствует примерно двум вызовам каждые четыре секунды в облаке), а затем сохраните прокси-сервер API. - Выполните команду
curlили несколько раз обновите страницу в браузере (curlбыстрее). Обратите внимание, что если вы совершаете один или два звонка с интервалом в четыре секунды, звонки будут успешными. Если вы будете звонить быстро, более двух раз за четыре секунды, то получите ошибку. Но после каждого четырехсекундного интервала вы можете продолжать звонить, а не ждать целую минуту (как при настройке на 13:00).