Para monitorizar mis clústeres de Amazon EMR, ejecuto scripts que realizan llamadas a la API. Los scripts devuelven errores similares a los siguientes: «Tasa superada (servicio: AmazonElasticMapReduce; código de estado: 400; código de error: ThrottlingException; ID de solicitud: e2b6191c-gkl5-269r-u735-cryyz251a837)» ¿Cómo puedo evitar los errores de «tasa superada»?
Breve descripción
Amazon EMR limita las llamadas a la API para mantener la estabilidad del sistema. Las excepciones de limitación suelen producirse cuando se ejecutan scripts de monitorización a intervalos regulares para comprobar si hay un parámetro en los clústeres. He aquí un ejemplo: llamar a DescribeCluster cada 60 segundos para comprobar si el clúster ha alcanzado el estado de EN ESPERA. Cuantos más clústeres tenga y más scripts de monitorización ejecute, más probabilidades habrá de que se produzcan errores de limitación.
Solución
Para evitar errores de limitación:
- Reduzca la frecuencia de las llamadas a la API.
- Escalone los intervalos de las llamadas a la API para que no se ejecuten todas al mismo tiempo.
- Implemente un retroceso exponencial al realizar llamadas a la API.
- Plantéese pasar a una arquitectura basada en eventos.
Con el fin de comprender el origen de los errores de limitación, utilice AWS CloudTrail para realizar un seguimiento del historial de eventos. CloudTrail puede ayudar a identificar detalles de eventos como los siguientes:
- Llamadas frecuentes a la API
- Errores de tasa superada y sus correspondientes llamadas a la API
- Si las llamadas a la API las activan los usuarios o la automatización
Información relacionada
Errores habituales
Administración y monitorización de la limitación de API en sus cargas de trabajo
Cómo funciona CloudTrail