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

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

- В категории «Управление дорожным движением» выберите «Арест с помощью шипов» . Откроется диалоговое окно «Новая политика»:

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

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

В XML-файле политики измените значение элемента
<Rate>на 1pm (что примерно соответствует 2 запросам, разрешенным каждые 60 секунд в облаке).Вы можете указать скорость в виде целого числа в минуту (
pm) или в секунду (ps). Это очень низкий предел, используемый только в этом руководстве для демонстрации политики. Обычно его устанавливают на гораздо более высокое значение.Обратите внимание, что значение
Rateв инспекторе недвижимости также изменяется на «13:00». В качестве альтернативы вы можете изменить значение ставки в инспекторе недвижимости, и это отразится в XML-представлении.- Нажмите «Сохранить» , чтобы сохранить текущую версию с внесенными изменениями.
Вызовите API с помощью
curl, заменив org_name на название вашей организации Apigee: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>на 15:00 (что примерно соответствует 2 разрешенным вызовам каждые 4 секунды в облаке), а затем сохраните настройки API-прокси. - Выполните команду
curlили несколько раз обновите страницу в браузере (curlработает быстрее). Обратите внимание, что если вы совершите один или два вызова с интервалом в 4 секунды, ваши вызовы будут успешными. Если вы совершите вызовы быстро, более двух за 4 секунды, вы получите ошибку. Но после каждого 4-секундного интервала вы можете продолжать совершать вызовы, в отличие от блокировки на целую минуту (при настройке на 13:00).