Добавьте политику Spike Arrest в свой API

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Что вы узнаете

В этом уроке вы научитесь:

  • Добавьте политику, которая влияет на запрос и ответ.
  • Посмотрите, к чему приведет эта политика.

Что вам понадобится

  • В вашем прокси-сервере должна быть как минимум одна политика (это также часть руководства по началу работы).
  • Установите curl на свой компьютер, чтобы выполнять вызовы API из командной строки.

Добавить политику ареста с помощью шипов.

В этом руководстве вы добавите и настроите политику SpikeArrest для защиты целевого сервиса от внезапных скачков трафика, которые могут быть вызваны увеличением использования, ошибками в работе клиентов или вредоносными атаками. Когда количество запросов превышает лимит, API возвращает ошибку HTTP 500.

Добавьте политику Spike Arrest к API-прокси:

  1. Войдите на сайт apigee.com/edge .
  2. В левой панели навигации выберите «Разработка» > «API-прокси» .
  3. Выберите API-прокси, к которому вы хотите добавить политику Spike Arrest.

    Если вы следовали инструкциям из руководства «Начало работы», вы можете добавить его к прокси-серверу «getstarted», который вы создали в разделе «Создание прокси-сервера API» .

  4. В редакторе нового API-прокси перейдите на вкладку «Разработка» :

    Редактор API-прокси позволяет увидеть структуру вашего API-прокси и настроить его поток данных. Редактор отображает визуальное представление потока запросов и ответов вашего прокси, а также редактируемый XML-код, определяющий прокси.

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

    Нажмите «Шаг» в предварительном запросе.

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

    Создать политику ареста с помощью шипов.

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

    Ознакомьтесь с политикой PreFlow при внезапной остановке сердца.

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

  11. В XML-файле политики измените значение элемента <Rate> на 1pm (что примерно соответствует 2 запросам, разрешенным каждые 60 секунд в облаке).

    Вы можете указать скорость в виде целого числа в минуту ( pm ) или в секунду ( ps ). Это очень низкий предел, используемый только в этом руководстве для демонстрации политики. Обычно его устанавливают на гораздо более высокое значение.

    Обратите внимание, что значение Rate в инспекторе недвижимости также изменяется на «13:00». В качестве альтернативы вы можете изменить значение ставки в инспекторе недвижимости, и это отразится в XML-представлении.

  12. Нажмите «Сохранить» , чтобы сохранить текущую версию с внесенными изменениями.
  13. Вызовите 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-адрес в веб-браузере.)

  14. Выполните команду curl (или обновите окно браузера) еще два или три раза в течение одной минуты, и вы увидите следующее сообщение, поскольку превысили лимит запросов, установленный политикой:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    Если вы попытаетесь совершить еще несколько звонков в течение минуты, сообщение об ошибке будет появляться и в дальнейшем.

  15. Отредактируйте свою политику, установив лимит Rate> на 15:00 (что примерно соответствует 2 разрешенным вызовам каждые 4 секунды в облаке), а затем сохраните настройки API-прокси.
  16. Выполните команду curl или несколько раз обновите страницу в браузере ( curl работает быстрее). Обратите внимание, что если вы совершите один или два вызова с интервалом в 4 секунды, ваши вызовы будут успешными. Если вы совершите вызовы быстро, более двух за 4 секунды, вы получите ошибку. Но после каждого 4-секундного интервала вы можете продолжать совершать вызовы, в отличие от блокировки на целую минуту (при настройке на 13:00).