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
}
]
}
