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

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

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

Благодаря этому уроку вы научитесь:

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

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

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

Добавить политику внезапного ареста

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

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

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

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

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

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

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

    Нажмите «Шаг» в запросе PreFlow.

  7. Выберите Spike Arrest в категории «Управление трафиком». Появится диалоговое окно «Новая политика»:

    Создать политику внезапного ареста

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

    Посмотреть политику PreFlow с Spike Arrest

  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 , заменив имя организации 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-адрес в веб-браузере.)

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

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

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