Solicitud de plug-in de limitación
El plug-in de limitación de solicitudes limita el número de veces que se puede llamar a una API dentro de un período de tiempo específico. Soporta la limitación basada en parámetros, básica y excluida.
Solo las puertas de enlace dedicadas creadas a partir del 4 de diciembre de 2021 admiten el plug-in de limitación de solicitudes. Para utilizar este plug-in para puertas de enlace dedicadas creadas antes del 4 de diciembre de 2021, póngase en contacto con el servicio de atención al cliente.
- Limitación básica
Limita las solicitudes por API, usuario, aplicación o dirección IP de origen. Esta función es equivalente a una política de limitación de solicitudes pero es incompatible con ella.
- Limitación basada en parámetros
Limitar las solicitudes basadas en encabezados, parámetros de ruta, métodos, cadenas de consulta o variables del sistema.
- Limitación excluida
Limitar las solicitudes basadas en aplicaciones o inquilinos específicos.
Restricciones
- Una política de limitación de solicitudes no es válida si un plug-in de limitación de solicitudes está enlazado a la misma API que la política.
- Puede definir un máximo de 100 reglas de parámetros.
- El contenido del plug-in no puede exceder los caracteres 65,535.
Parámetros de configuración
Parámetro |
Descripción |
---|---|
Policy Type |
|
Period |
Durante cuánto tiempo desea limitar el número de solicitudes de API.
|
Max. API Requests |
El número máximo de veces que se puede llamar a cada API enlazada dentro del período especificado. Este parámetro debe usarse junto con Period. |
Max. User Requests |
El número máximo de veces que un usuario puede llamar a cada API enlazada dentro del período especificado. Para las API con autenticación IAM, la limitación se basa en un ID de proyecto; para las API con autenticación de aplicación, la limitación se basa en un ID de cuenta. Para obtener más información sobre los ID de cuenta y los ID de proyecto, consulte la descripción sobre Excluded Tenants en esta tabla.
|
Max. App Requests |
Número máximo de veces que una aplicación puede llamar a cada API enlazada dentro del período especificado. Este límite solo se aplica a las API a las que se accede a través de la autenticación de aplicaciones.
|
Max. IP Address Requests |
El número máximo de veces que cada API enlazada puede ser llamada por una dirección IP dentro del período especificado.
|
Parameter-based Throttling |
Habilitar o deshabilitar la limitación basada en parámetros. Después de activar esta función, las solicitudes de API se reducen en función de los parámetros especificados. |
Parameters |
Defina los parámetros para las reglas de limitación.
|
Rules |
Definir reglas de limitación. Una regla consiste en condiciones, un límite de limitación de solicitudes de API y un período. Para agregar más reglas, haga clic en Add Rule.
Por ejemplo, configure el estrangulamiento basado en parámetros de la siguiente manera: agregue el parámetro Host y especifique la ubicación como Header; agregue la condición Host = www.abc.com, y establezca el límite de estrangulamiento en 10 y el período en 60s. Para las API cuyo parámetro Host en el encabezado de solicitud es igual a www.abc.com, no se pueden llamar de nuevo una vez que se les llama 10 veces en 60s. |
Excluded Throttling |
Habilitar o deshabilitar la limitación excluida. Después de habilitar esta función, los límites de limitación para los inquilinos y las aplicaciones excluidos anulan el valor Max. User Requests y Max. App Requests en la área Basic Throttling. |
Excluded Tenants |
Tenant ID: ID de cuenta o ID de proyecto.
Threshold: el número máximo de veces que un inquilino específico puede acceder a una API dentro del período especificado. El umbral no puede exceder el valor de Max. . API Requests en el área Basic Throttling. |
Excluded Apps |
Seleccione una aplicación y especifica el número máximo de veces que la aplicación puede acceder a una API dentro del período especificado. El umbral no puede exceder el valor de Max. . API Requests en el área Basic Throttling. |
Script de ejemplo
{ "scope": "basic", "default_interval": 60, "default_time_unit": "second", "api_limit": 100, "app_limit": 50, "user_limit": 50, "ip_limit": 20, "specials": [ { "type": "app", "policies": [ { "key": "2e421d76dc6c4c75941511ccf654e368", "limit": 10 } ] }, { "type": "user", "policies": [ { "key": "878f1b87f71c40a7a15db0998f358bb9", "limit": 10 } ] } ], "parameters": [ { "type": "path", "name": "reqPath", "value": "reqPath" }, { "type": "method", "name": "method", "value": "method" }, { "type": "header", "name": "Host", "value": "Host" } ], "rules": [ { "match_regex": "[\"Host\",\"==\",\"www.abc.com\"]", "rule_name": "rule-jlce", "time_unit": "second", "interval": 0, "limit": 5 } ] }