¿Cómo soluciono los problemas de limitación de la función de Lambda con los errores «Rate exceeded» y 429 «TooManyRequestsException»?

5 minutos de lectura
0

Mi función de AWS Lambda produce errores de «Rate exceeded» y 429 «TooManyRequestsException».

Resolución

Las funciones de Lambda a veces se limitan para proteger los recursos y aplicaciones posteriores. Aunque Lambda se escala automáticamente para adaptarse al tráfico entrante, la función puede seguir limitándose por varios motivos.

Para solucionar los problemas de limitación de Lambda, incluidos los errores de Rate exceeded y TooManyRequestsException, revise los siguientes pasos.

Compruebe qué recurso está limitado

Es posible que los errores de aceleración no provengan de la función de Lambda. También pueden producirse limitaciones en las llamadas a la API durante la invocación de la función.

Para confirmar qué recurso está limitado, consulte los siguientes recursos.

Consulte sus Registros de Amazon CloudWatch para ver si hay errores de limitación, pero no hay puntos de datos correspondientes en las métricas de limitaciones de Lambda

Si no hay métricas de limitaciones de Lambda, la limitación se produce en las llamadas a la API en el código de la función de Lambda.

Compruebe el código de su función para ver si hay alguna llamada a la API limitada

Si ciertas llamadas a la API están limitadas, asegúrese de utilizar un retraso exponencial en su código para volver a intentar realizar las llamadas a la API.

Nota: Si necesita una cuota de transacciones por segundo (TPS) más alta para una llamada a la API, solicite un aumento de la cuota de servicio. No todas las cuotas son ajustables.

Compruebe las métricas de concurrencia de su función

Revise sus métricas de Lambda en Amazon CloudWatch

Compruebe la métrica de Ejecuciones simultáneas de su función en la región de AWS en la que se observa una limitación.

Compare la métrica de Ejecuciones simultáneas con la métrica de Limitaciones para la misma marca de tiempo

Vea la Máxima estadística para Ejecuciones simultáneas y laestadística de Suma para Limitaciones. Compruebe si las máximas Ejecuciones simultáneas están cerca de su cuota de concurrencia a nivel de cuenta en la región, junto con los puntos de datos correspondientes en el gráfico de Limitaciones.

Compruebe si está superando la cuota de concurrencia de ráfagas inicial para una región de AWS en particular

En la página de métricas de Lambda en la consola de CloudWatch, reduzca el intervalo de tiempo del gráfico a 1 minuto. Si está limitado por la escala de ráfagas, verá un pico de Limitaciones que corresponde a un patrón escalonado de Ejecuciones simultáneas en el gráfico.

**Nota:**Para evitar los límites de concurrencia de ráfagas, puede configurar la concurrencia aprovisionada.

Compruebe si hay picos en las métricas de duración de su función

La concurrencia depende de la duración de la función. Si el código de la función tarda demasiado en completarse, es posible que no haya suficientes recursos informáticos.

Intente aumentar la función de configuración de memoria. A continuación, utilice AWS X-Ray y registros de CloudWatch para aislar la causa de los aumentos de duración.

Nota: Cambiar la configuración de memoria puede afectar a los gastos en los que incurra por el tiempo de ejecución.

Puede agregar la función a una Amazon Virtual Private Cloud (Amazon VPC). Si la función está en una Amazon VPC, consulte ¿Cómo puedo dar acceso a Internet a una función de Lambda que está conectada a una Amazon VPC?

Compruebe si hay un aumento en las métricas de errores de su función

El aumento de los errores puede llevar a reintentos y provocar un aumento general de las invocaciones. El aumento de las invocaciones puede llevar a un aumento de la concurrencia. Utilice los registros de CloudWatch para identificar y eliminar errores, y haga que su código de función gestione las excepciones.

Nota: Su función también se puede limitar basado en las solicitudes de invocación por región (solicitudes por segundo), lo que equivale a 10 veces su cuota de ejecuciones simultáneas.

Configurar la simultaneidad reservada

Confirme que ha configurado la simultaneidad reservada en su función

Utilice la consola de Lambda para comprobar la configuración de simultaneidad reservada. Si la simultaneidad reservada no está configurada, la función utiliza la simultaneidad no reservada. Cuando las invocaciones con funciones superan la simultaneidad no reservada, se produce una limitación.

Nota: Si ha configurado una función con una simultaneidad reservada de cero, la función está limitada porque no puede procesar ningún evento. Asegúrese de aumentar el valor a un número mayor que cero.

Revise la Máxima estadística en CloudWatch para su función

Compruebe si la métrica de la función alcanza el valor máximo de la métrica de Ejecuciones simultáneas en algún momento.

Aumente la simultaneidad reservadapara su función a un valor de simultaneidad que evite que la función se limite

Utilice la consola de Lambda para cambiar la configuración o llame a la API PutFunctionConcurrency.

Use un retroceso exponencial en su aplicación

Para volver a intentar realizar solicitudes limitadas, se recomienda utilizar un retroceso exponencial en la aplicación que llama la función de Lambda.

Usa una cola de mensajes fallidos

Para los orígenes de eventos asincrónicos, como Amazon Simple Storage Service (Amazon S3) y Amazon EventBridge, configure la función con una cola de mensajes fallidos (DLQ). A continuación, compruebe la gestión de errores para la configuración de invocación asincrónica. El DLQ detecta cualquier evento que se descarte debido a las limitaciones constantes y puede proteger sus datos si detecta una limitación significativa.

Nota: Para los orígenes de eventos de Amazon Simple Queue Service (Amazon SQS), debe configurar el DLQ en la cola de Amazon SQS.

Solicite un aumento de cuota de servicio

Si su carga de trabajo requiere una mayor cuota de servicio para las ejecuciones simultáneas, utilice la consola de cuotas de servicio para solicitar un aumento de la cuota de servicio.


Información relacionada

Prácticas recomendadas para trabajar con funciones de AWS Lambda

Solucionar problemas de invocación en AWS Lambda

Control de errores y reintentos automáticos en AWS Lambda

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año