Cloud Endpoints proporciona cuotas, que te permiten controlar la frecuencia con la que las aplicaciones pueden llamar a tu API. La configuración de una cuota te permite especificar los límites de uso para proteger tu API de una cantidad excesiva de solicitudes de las aplicaciones que le hacen llamadas. Este exceso de solicitudes se puede deber a un error tipográfico o a un sistema diseñado de manera ineficiente que realiza llamadas innecesarias a tu API. Sea cual sea la causa, es necesario bloquear el tráfico de una fuente, una vez que alcanza cierto nivel, para mantener el buen estado general de tu API. Cuando configuras una cuota, te aseguras de que una aplicación no impactará de forma negativa en las otras aplicaciones que usan tu API.
En esta página se brinda una descripción general de la funcionalidad clave proporcionada por las cuotas.
Las solicitudes se vinculan con el proyecto del consumidor
Una vez que configuras una cuota, Endpoints realiza un seguimiento de la cantidad de solicitudes por minuto para cada proyecto de consumidor de Google Cloud. Cada aplicación que llame a tu API debe cumplir con estos requisitos:
- Tener un proyecto de Google Cloud.
- Tener la API habilitada en su proyecto de Google Cloud.
- Enviar una clave de API con cada solicitud a la API Esto permite a Endpoints identificar el proyecto de Google Cloud con el que está asociada la aplicación de llamada y aumentar el recuento de solicitudes para el proyecto de Google Cloud.
Puedes hacer que los usuarios de tu API creen sus propios proyectos en la consola de Google Cloud o puedes crearlos por ellos. Dado que Endpoints aplica cuotas por proyecto, debes tener un proyecto por cada consumidor de API.
Limita la cantidad de solicitudes por minuto
Cuando configuras una cuota, puedes limitar la cantidad de solicitudes realizadas por minuto a la API completa o solo a métodos específicos. Si el código de cliente de un proyecto del consumidor excede el límite que configuraste, se rechazará la solicitud antes de que llegue a tu API y se mostrará el código de estado HTTP 429 too many
requests
. Las aplicaciones que realizan las llamadas deberán controlar el código de estado 429
y usar la retirada exponencial o alguna otra lógica de reintento para disminuir la frecuencia de las llamadas a tu API.
Configura una o más cuotas
Puedes configurar una o más cuotas con nombre y especificar un límite de frecuencia diferente para cada una. Por ejemplo, tu API podría tener algunos métodos con uso intensivo de recursos (como un método que ejecuta una consulta compleja y muestra una lista larga de resultados) y otros métodos que son rápidos y básicos. Es posible que desees configurar dos cuotas con límites de frecuencia diferentes, y asociar los métodos con uso intensivo de recursos con una cuota y los métodos básicos con la otra.
Configura un costo
Cuando asocias un método a una cuota, siempre se especifica un costo para la solicitud. Esto permite que los métodos distintos consuman la misma cuota con frecuencias diferentes. Puedes utilizar los costos como una alternativa a la configuración de diferentes cuotas. Por ejemplo, imagina que configuras una cuota con un límite de 1,000 solicitudes por minuto. Para los métodos básicos, configuras un costo de 1, lo que significa que los clientes pueden llamar a los métodos básicos 1,000 veces por minuto. Para los métodos que hacen un uso intensivo de recursos, configuras un costo de 2, lo que significa que cada vez que el cliente llame al método, el recuento de solicitudes aumentará en 2 hasta que se alcance el límite de 1,000. De hecho, esto limita a 500 las solicitudes por minuto de los métodos que hacen un uso intensivo de recursos.
Anula la cuota configurada
En la página Endpoints > Servicios, se muestra la cuota configurada para cada método en tu API. Si es necesario, puedes anular el límite configurado para un proyecto de consumidor específico. Para configurar una anulación, debes ingresar el número del proyecto de consumidor en la página Endpoints > Servicios. Si no tienes acceso al proyecto de consumidor que quieres anular, debes comunicarte con alguien que tenga acceso para obtener el número de proyecto.