Реализация ограничения скорости в Azure Управление API

С помощью ограничения скорости можно ограничить количество вызовов API, которые пользователь или служба могут выполнять за заданный период времени. Ограничение скорости позволяет обеспечить справедливое использование и предотвратить монополизацию ресурсов API одним пользователем или службой. Azure Управление API (APIM) предоставляет удобный способ реализации ограничения скорости для API.

Почему Azure Управление API?

Azure Управление API — это мощная и универсальная облачная служба, которая помогает организациям публиковать API для внешних, партнерских и внутренних разработчиков. Она предоставляет средства для защиты, управления и масштабирования вызовов API. Одной из его функций является управление ограничением скорости, что полезно для поддержания работоспособности и надежности API.

Настройка ограничения скорости в Azure Управление API

Azure Управление API использует политики для применения ограничения скорости. Эти политики можно определить в разных областях: глобальных, продуктов или API. Такая гибкость позволяет настраивать ограничение скорости в соответствии с требованиями API и шаблонами использования.

Прежде чем приступить к реализации ограничения скорости, определите ограничения скорости. Установленные ограничения зависят от емкости API и ожидаемого трафика. Общие ограничения задаются как количество вызовов в секунду, минуту или час. Например, можно разрешить 1000 вызовов в минуту на пользователя.

Чтобы определить ограничения скорости в API в Azure Управление API, используйте rate-limit политики или rate-limit-by-key . Первый устанавливает ограничение для всех пользователей, а второй разрешает ограничения на определенный ключ (например, подписку или идентификатор пользователя).

Ниже приведен пример политики, которая ограничивает количество вызовов до 1000 в минуту.

<policies>
  <inbound>
    <base />
    <rate-limit calls="1000" renewal-period="60" />
  </inbound>
  <backend>
    <base />
  </backend>
  <outbound>
    <base />
  </outbound>
  <on-error>
    <base />
  </on-error>
</policies>

При превышении указанного числа вызовов azure Управление API отправляет код состояния 429 Too Many Requests, а также retry-after заголовок ответа и сообщение, указывающее, когда можно повторить попытку.

HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 60
    
{
  "statusCode": 429,
  "message": "Rate limit is exceeded. Try again in 60 seconds."
}

Предоставление сведений об ограничении скорости в заголовках ответов

По умолчанию azure Управление API не предоставляет сведения об ограничении скорости в заголовках ответов. Не сообщая ограничения скорости, приложениям будет трудно избежать превышения лимита и регулирования. Чтобы предоставить сведения об ограничении скорости, расширьте rate-limit политику remaining-calls-header-name свойствами и total-calls-header-name .

<policies>
  <inbound>
    <base />
    <rate-limit calls="1000" renewal-period="60" remaining-calls-header-name="ratelimit-remaining" total-calls-header-name="ratelimit-limit" />
  </inbound>
  <backend>
    <base />
  </backend>
  <outbound>
    <base />
  </outbound>
  <on-error>
    <base />
  </on-error>
</policies>

При вызове API сейчас каждый ответ включает заголовки ratelimit-remaining и ratelimit-limit , которые сообщают, сколько еще вызовов API может обработать до превышения ограничения.

Сводка

Реализация ограничения скорости в Azure Управление API помогает создавать надежные и масштабируемые API. Используя ограничение скорости, вы можете обеспечить надежную и эффективную работу API для пользователей. Помните, что ключ заключается в том, чтобы найти правильный баланс — слишком строгий, и вы можете помешать удобство использования; слишком снисходит, и вы рискуете переполнять свой API. Благодаря тщательному планированию и непрерывному мониторингу вы можете достичь этого баланса и поддерживать работоспособное окружение API.

Дальнейшие действия