Реализация ограничения скорости в 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.
Дальнейшие действия
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по