Puede configurar la limitación y las cuotas de las API para evitar que se vean desbordadas por un número excesivo de solicitudes. Tanto los límites como las cuotas se aplican en la medida de lo posible y deben considerarse como objetivos en lugar de como límites de solicitud garantizados.
API Gateway limita las solicitudes a la API utilizando el algoritmo de bucket de tokens, donde un token da cuenta de una solicitud. En concreto, API Gateway examina el ratio de solicitudes y una ráfaga de envíos de solicitudes para todas las API de su cuenta, por región. En el algoritmo de bucket de tokens, una ráfaga puede permitir que se sobrepasen los límites predefinidos, pero también hay otros factores que pueden hacer que se sobrepasen los límites en algunos casos.
Cuando los envíos de solicitudes superan los límites de ratio de solicitudes en estado estable y de ráfaga, API Gateway comienza a limitar las solicitudes. Los clientes pueden recibir respuestas de error 429 Too Many Requests
en este momento. Tras capturar estas excepciones, el cliente puede reenviar las solicitudes que han producido un error de forma que limite el ratio.
Como desarrollador de la API, puede configurar los límites para distintas etapas o métodos de la API con el fin de mejorar el rendimiento general de todas las API de su cuenta. También puede activar planes de uso para configurar las limitaciones en los envíos de solicitudes de cliente en función de los ratios y cuotas de solicitudes.
Temas
Cómo se aplica la configuración de limitación controlada en API Gateway
Antes de establecer la configuración de limitación y cuota para la API, es recomendable entender de qué manera la configuración de limitación está relacionada con la configuración de limitación para la API y de qué manera la aplica API Gateway.
Amazon API Gateway proporciona de cuatro tipos básicos de opciones relacionadas con la limitación controlada:
-
Los límites de limitación de AWS se aplican a todas las cuentas y clientes de una región. Estos límites evitan que la API, y su cuenta, resulten colapsadas por un enorme número de solicitudes. AWS establece estos límites y el cliente no puede modificarlos.
-
Los límites por cuenta se aplican a todas las API de una cuenta en una región determinada. El límite de ratio de nivel de cuenta se puede aumentar previa solicitud. Los límites más altos son posibles con API que tienen tiempos de espera más cortos y cargas útiles más pequeñas. Para solicitar un aumento de los límites de la limitación controlada a nivel de la cuenta por región, contacte con el Centro de soporte de AWS
. Para obtener más información, consulte Cuotas de Amazon API Gateway y notas importantes. Tenga en cuenta que estos límites no pueden ser superiores a los límites de limitación controlada de AWS. -
Los límites de limitación controlada por API y por fase se aplican a nivel de método API para una etapa. Puede configurar los mismos ajustes para todos los métodos o configurar diferentes ajustes de limitación controlada para cada método. Tenga en cuenta que estos límites no pueden ser superiores a los límites de limitación controlada de AWS.
-
Las limitaciones controladas por cliente se aplican a los clientes que utilizan claves de API asociadas a su plan de uso como identificador del cliente. Tenga en cuenta que estos límites no pueden ser superiores a los límites por cuenta.
API Gateway aplica la configuración relacionada con la limitación en el orden siguiente:
-
Limitación controlada por método o por cliente establecida para una etapa de API en un plan de uso
-
Limitaciones por método que establece para una etapa de la API
-
Limitación controlada regional de AWS
Limitaciones de nivel de cuenta por región
De forma predeterminada, API Gateway limita las solicitudes de estado constante por segundo (RPS) en todas las API de una cuenta de AWS, por región. También limita la ráfaga (es decir, el tamaño máximo del bucket) en todas las API dentro de una cuenta de AWS, por región. En API Gateway, el límite de ráfaga representa el número máximo de envíos de solicitudes simultáneas que API Gateway; abordará antes de devolver respuestas de error 429 Too Many Requests
. Para obtener más información sobre la limitación de cuotas, consulte Cuotas de Amazon API Gateway y notas importantes.
Configuración de objetivos de la limitación controlada de nivel de API y de nivel de etapa en un plan de uso
En un plan de uso, puede definir un objetivo de limitación controlada de método predeterminado para todos los métodos en el nivel de API o de etapa. Puede especificar una tasa de limitación, que es la velocidad, en solicitudes por segundo, a la que se agregan los tokens al bucket de tokens. También puede especificar una ráfaga de limitación, que es la capacidad del bucket de tokens.
Puede usar la AWS Management Console, la CLI y los SDK de AWS para crear un plan de uso. Para obtener más información sobre cómo crear un plan de uso, consulte Planes de uso y clave de API para las API de REST en API Gateway.
Configuración de objetivos de limitación de nivel de etapa
Puede utilizar la CLI de AWS, los SDK y la AWS Management Console para crear objetivos de limitación a nivel de etapa.
Para obtener más información sobre cómo utilizar la AWS Management Console para crear objetivos de limitación en el nivel de etapa, consulte Modificación de la configuración de etapa. Para obtener más información sobre cómo utilizar la CLI de AWS para crear objetivos de limitación en el nivel de etapa, consulte create-stage.
Configuración de objetivos de limitación controlada a nivel de método en un plan de uso
Puede definir objetivos adicionales de la limitación controlada a nivel de método en Usage Plans (Planes de uso) como se muestra en Crear un plan de uso. Para establecerlos en la consola de API Gateway, hay que especificar Resource=
, <resource>
Method=
en Configure Method Throttling (Configurar limitación controlada de método). Por ejemplo, en el ejemplo de PetStore, puede especificar <method>
Resource=/pets
, Method=GET
.