Utilice la política ratelimit para aplicar uno o más límites de velocidad, ráfaga o recuento en cualquier punto del flujo de ensamblaje de la API. Los límites de velocidad y ráfaga limitan el número de llamadas efectuadas a una API durante un período de tiempo especificado, mientas que los límites de recuento imponen un límite estricto sobre el número total de llamadas.
Soporte de pasarela
Tabla 1. Tabla que muestra qué pasarelas soportan esta política y la versión de política correspondiente
| Pasarela |
Versión de política |
| DataPower® API Gateway |
2.0.0 2.1.0 (DataPower API Gateway Versión 10.0.1.0 o posterior)
2.2.0 (DataPower API Gateway Versión 10.0.2.0 o posterior)
2.3.0 (DataPower API Gateway Versión 10.5.0.0
|
En este tema se describe cómo configurar la política en el origen de OpenAPI ; para obtener detalles sobre cómo configurar la política en la interfaz de usuario de ensamblaje, consulte Límite de velocidad.
Acerca de
Los límites de velocidad, ráfaga y recuento definidos se aplican a lo que sigue en el flujo de ensamblaje. Por ejemplo, si una política ratelimit se coloca antes de una política invoke y la llamada realizada por la política invoke supera los límites definidos por la política ratelimit , la propia llamada de API falla.
La política
ratelimit tiene el formato siguiente:
- ratelimit:
version: version
title: title
description: description
source: rate_and_burst_limit_location
rate-limit: rate_limits_to_apply
burst-limit: burst_limits_to_apply
Propiedades
En la tabla siguiente se describen las propiedades de la política
ratelimit .
Tabla 2. ratelimit Propiedades de política
| Propiedad |
Obligatorio |
Descripción |
Tipo de datos |
| version |
Sí |
El número de versión de la política |
serie |
| title |
Nee |
Título de la política. |
serie |
| description |
Nee |
Una descripción de la política. |
serie |
| source |
Sí |
La ubicación de todas las definiciones de límite de velocidad, límite de ráfaga y límite de recuento que se incluyen en esta política. Especifique uno de los valores siguientes:
catalog-named: los límites de velocidad o de separación que se van a aplicar se definen en el objeto api-collection adecuado en DataPower API Gateway, que es el objeto que representa el catálogo de API Connect en la configuración de pasarela.Para obtener detalles sobre cómo configurar un límite de velocidad, separación o recuento en el objeto api-collection , consulte Configuración de un límite de velocidad, separación o recuento en.
plan-named: los límites que se deben aplicar son los límites de ráfaga de ensamblaje o los límites de recuento de ensamblaje
definidos en el plan al que se ha suscrito la aplicación de llamada. Para obtener detalles sobre cómo configurar límites de separación de ensamblaje y límites de recuento de ensamblaje en un plan, consulte Edición de un borrador de producto.Nota: Las condiciones siguientes se aplican a una política de límite de velocidad de plan-named :
- Cada plan que contiene la API que se está limitando debe tener aplicado el límite de velocidad especificado.
- No se puede utilizar una política de límite de velocidad de
plan-named con productos generados automáticamente.
gateway-named: los límites que se van a aplicar se definen en el objeto apigw , denominado apiconnect, en la pasarela de DataPower API Gateway .Para obtener detalles sobre cómo configurar un límite de velocidad, separación o recuento en el objeto apigw , consulte Configuración de un límite de velocidad, separación o recuento en.
plan-default: los límites de velocidad y ráfaga que se aplican son los predeterminados configurados en el plan al que se ha
suscrito la
aplicación de llamada. Para obtener detalles sobre cómo configurar la velocidad del plan predeterminada y los límites de separación, consulte Edición de un borrador de producto.Nota: El uso de esta opción no inhabilita ninguna política de límite de velocidad de preflujo automática que pueda estar en vigor y podría hacer que la aplicación de la limitación de velocidad se repita. Para obtener más información sobre las políticas de preflujo, consulte Personalización de las políticas de preflujo.
|
serie |
| rate-limit |
Sí1 |
Si la propiedad source se establece en catalog-named, una lista de nombres de límite de velocidad tal como se define en la configuración de DataPower API Gateway ,1 Debe proporcionar como mínimo un límite de velocidad, ráfaga o recuento.
|
serie |
| burst-limit |
Sí2 |
Si la propiedad source se establece en catalog-named, una lista de nombres de límite de separación tal como se define en la configuración de DataPower API Gateway .Si source se ha establecido en plan-named, una lista de nombres de límites de ráfaga de ensamblaje definidos
en un
plan.
2 Debe proporcionar como mínimo un límite de velocidad, ráfaga o recuento.
|
serie |
| count-limit |
Sí3 |
Si la propiedad source se establece en catalog-named, una lista de nombres de límite de recuento tal como se define en la configuración de DataPower API Gateway .Si source se ha establecido en plan-named, una lista de nombres de límites de recuento de ensamblaje definidos en un
plan.
3 Debe proporcionar como mínimo un límite de velocidad, ráfaga o recuento.
|
serie |
| operation |
Nee |
Para un límite de velocidad, especifique uno de los valores siguientes:
consume: la política reduce el saldo de las solicitudes disponibles que permanecen en el intervalo definido por el límite de
velocidad especificado por la propiedad rate-limit.La cantidad en la que se reduce el saldo restante es el valor resultante
de la
expresión de ponderación definida en el límite de velocidad especificado.
replenish: la política aumenta el saldo de las solicitudes disponibles que permanecen en el intervalo definido por el límite
de
velocidad especificado por la propiedad rate-limit.La cantidad en la que aumenta el saldo restante es el valor resultante de
la
expresión de ponderación definida en el límite de velocidad especificado.
La finalidad de la operación replenish es restaurar una cantidad
adecuada de saldo restante en los casos en que la cantidad calculada por una operación consume anterior resulta ser demasiado alta. Por ejemplo, para un
límite de velocidad de ensamblaje con un límite de 100, una operación consume con una ponderación de 60 utiliza 60 solicitudes, dejando 40 solicitudes
para el intervalo. Si la expresión de ponderación de la operación replenish subsiguiente se calcula en 15, lo que significa que la expresión de ponderación
ha calculado que el uso real de solicitudes era de sólo 45, la operación replenish aumenta las solicitudes restantes en 15, hasta un saldo restante de 55.
Tenga en cuenta que la operación replenish no puede aumentar las solicitudes restantes permitidas más allá del límite original definido en el
esquema
de límite de velocidad de ensamblaje. En este ejemplo, una operación replenish no puede reponer solicitudes más allá de 100. Una operación replenish se
omite si la expresión de ponderación se evalúa como un valor inferior a 1.
El valor predeterminado es consume.
Para un límite de recuento, especifique uno de los valores siguientes:
inc: el valor actual se incrementa en el valor que resulta de la expresión de ponderación definida en el límite de recuento
especificado por la propiedad count-limit.
dec: el recuento actual se reduce en el valor que resulta de la expresión de ponderación definida en el límite de recuento
especificado en el campo count-limit.
De forma predeterminada, el límite de recuento disminuye automáticamente al final del ensamblaje de API en la cantidad total incrementada durante el ensamblaje, menos las operaciones de disminución definidas en el ensamblaje. No es necesario definir explícitamente las operaciones de disminución, a menos que desee que las disminuciones se produzcan en puntos específicos del ensamblaje. Sin embargo, si la función de disminución automática se ha inhabilitado explícitamente en la configuración del límite de recuento, debe incluir una operación de disminución correspondiente; de lo contrario, cuando se alcance el límite de recuento, se bloquearán todas las llamadas futuras. Para obtener más información sobre cómo configurar un límite de recuento, consulte Configuración de un límite de velocidad, separación o recuento en.
El valor predeterminado es inc.
Para un límite de ráfaga, el único valor posible es consume, lo que significa que el límite aplicado es el definido en el límite de
ráfaga especificado por el campo burst-limit.
|
serie |
Ejemplo
- ratelimit:
version: 2.0.0
title: Apply rate and burst limits
source: catalog-named
rate-limit:
- 30perMinute
- 2000per3Hours
burst-limit:
- 5per10Seconds