Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
Политика rate-limit
предотвращает пики использования API для каждой подписки, ограничивая частоту вызовов до указанного числа за определенный период времени. При превышении предела вызовов вызывающий объект получает код состояния ответа 429 Too Many Requests
.
Сведения о разнице между ограничениями скорости и квотами см. в разделе "Пределы скорости и квоты".
Внимание
Из-за распределенной архитектуры регулирования ограничение скорости никогда не является полностью точным. Разница между настроенным числом разрешенных запросов и фактическим числом зависит от объема запросов и скорости, задержки серверной части и других факторов.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Правило политики
<rate-limit calls="number" renewal-period="seconds" retry-after-header-name="custom header name, replaces default 'Retry-After'"
retry-after-variable-name="policy expression variable name"
remaining-calls-header-name="header name"
remaining-calls-variable-name="policy expression variable name"
total-calls-header-name="header name">
<api name="API name" id="API id" calls="number" renewal-period="seconds" >
<operation name="operation name" id="operation id" calls="number" renewal-period="seconds" />
</api>
</rate-limit>
Атрибуты
Атрибут | Описание | Обязательное поле | По умолчанию. |
---|---|---|---|
вызывает | Максимальное общее число вызовов, разрешенное в течение периода времени, указанного в renewal-period . Выражения политики не допускаются. |
Да | Н/П |
период продления | Длина скользящего окна в секундах, в течение которого количество разрешенных запросов должно быть не больше значения, указанного в параметре calls . Максимально допустимое значение: 300 секунд. Выражения политики не допускаются. |
Да | Н/П |
retry-after-header-name | Имя заголовка пользовательского ответа, значение которого является рекомендуемым интервалом повтора в секундах после превышения указанного числа вызовов. Выражения политики не допускаются. | нет | Retry-After |
retry-after-variable-name | Имя переменной, которая сохраняет рекомендуемый интервал повторных попыток в секундах после превышения указанной частоты звонков. Выражения политики не допускаются. | нет | Н/П |
остальные вызовы-заголовок-name | Имя заголовка ответа, значение которого после каждого выполнения политики равно количеству оставшихся вызовов, допустимым для интервала времени, указанного в renewal-period . Выражения политики не допускаются. |
нет | Н/П |
оставшееся имя-calls-variable-name | Имя переменной, которая после каждого выполнения политики сохраняет количество оставшихся вызовов, разрешенных для интервала времени, указанного в параметре renewal-period . Выражения политики не допускаются. |
нет | Н/П |
total-calls-header-name | Имя заголовка ответа, значение которого равно значению, указанному в параметре calls . Выражения политики не допускаются. |
нет | Н/П |
Элементы
Элемент | Описание | Обязательное поле |
---|---|---|
API | Добавьте один или несколько таких элементов, чтобы установить ограничение частоты вызовов для интерфейсов API в масштабах продукта. Ограничения частоты вызовов продукта и API применяются раздельно. Ссылаться на API можно с помощью name или id . Если указаны оба атрибута, id будет использоваться, а name — игнорироваться. |
нет |
Операция | Добавьте один или несколько таких элементов, чтобы установить ограничение частоты вызовов для операций в масштабах API. Ограничения частоты вызовов продукта, API и операции применяются раздельно. Ссылаться на операцию можно с помощью name или id . Если указаны оба атрибута, id будет использоваться, а name — игнорироваться. |
нет |
Атрибуты API
Атрибут | Описание | Обязательное поле | По умолчанию. |
---|---|---|---|
имя | Имя API, для которого применяется ограничение частоты. |
name Необходимо указать либоid . |
Н/П |
идентификатор | Идентификатор API, для которого применяется ограничение скорости. |
name Необходимо указать либоid . |
Н/П |
вызывает | Максимальное общее число вызовов, разрешенное в течение периода времени, указанного в renewal-period . Выражения политики не допускаются. |
Да | Н/П |
период продления | Длина скользящего окна в секундах, в течение которого количество разрешенных запросов должно быть не больше значения, указанного в параметре calls . Максимально допустимое значение: 300 секунд. Выражения политики не допускаются. |
Да | Н/П |
Атрибуты операции
Атрибут | Описание | Обязательное поле | По умолчанию. |
---|---|---|---|
имя | Имя операции, для которой применяется ограничение скорости. |
name Необходимо указать либоid . |
Н/П |
идентификатор | Идентификатор операции, для которой применяется ограничение скорости. |
name Необходимо указать либоid . |
Н/П |
вызывает | Максимальное общее число вызовов, разрешенное в течение периода времени, указанного в renewal-period . Выражения политики не допускаются. |
Да | Н/П |
период продления | Длина скользящего окна в секундах, в течение которого количество разрешенных запросов должно быть не больше значения, указанного в параметре calls . Максимально допустимое значение: 300 секунд. Выражения политики не допускаются. |
Да | Н/П |
Использование
- Разделы политики: inbound.
- Области политики: product, API, operation.
- Шлюзы: классическая, версия 2, потребление, локальное размещение, рабочая область
Примечания об использовании
- Эту политику можно использовать только один раз для определения политики.
- Эта политика применяется только при доступе к API с помощью ключа подписки.
- Количество ограничений скорости в локальном шлюзе можно настроить для синхронизации локально (между экземплярами шлюза между узлами кластера), например с помощью развертывания диаграмм Helm для Kubernetes или с помощью шаблонов развертывания портал Azure. Однако количество ограничений скорости не синхронизируется с другими ресурсами шлюза, настроенными в экземпляре Управление API, включая управляемый шлюз в облаке. Подробнее
- Эта политика отслеживает вызовы независимо от каждого шлюза, в котором он применяется, включая шлюзы рабочей области и региональные шлюзы в развертывании с несколькими регионами. Он не агрегирует данные вызова по всему экземпляру.
Пример
В следующем примере ограничение скорости для каждой подписки составляет 20 вызовов в течение 90 секунд. После каждого выполнения политики оставшиеся вызовы, разрешенные за период времени, сохраняются в переменной remainingCallsPerSubscription
.
<policies>
<inbound>
<base />
<rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
</inbound>
<outbound>
<base />
</outbound>
</policies>
Связанные политики
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Репозиторий игровой площадки политики
- Набор средств политики Управление API Azure
- Получите помощь Copilot для создания, объяснения и устранения неполадок в политике