es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La concurrencia reservada en AWS Lambda no impide que la función Lambda se escale más?

Tengo una tarea programada diaria que activa alrededor de 10 mil funciones lambda para 10 mil registros que necesito mantener. Estoy utilizando SQS para encolar todos esos mensajes y quiero distribuir la ejecución a lo largo de unas pocas horas. Por lo tanto, configuré una concurrencia reservada para que solo haya 3 invocaciones simultáneas. Sin embargo, cuando esa tarea programada alcanza las invocaciones simultáneas, las funciones lambda superan las 3. ¿Algún consejo sobre cómo hacerlo?
Cuando reviso la configuración de la lambda, muestra que la concurrencia reservada es de 3. Pero en la supervisión, las invocaciones simultáneas muestran un número mucho mayor que 3.
Métricas de Lambda en una de las invocaciones de la tarea
Configuración de Lambda para la concurrencia
![Métricas promedio para ejecuciones concurrentes
]
3

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la tarea programada está activando más de 3 invocaciones concurrentes de la función lambda, incluso aunque la concurrencia reservada esté configurada en 3. Una posible solución a este problema sería introducir un mecanismo de limitación que restrinja la cantidad de mensajes extraídos de la cola SQS al mismo tiempo.

    Un enfoque potencial podría ser utilizar el SDK de AWS para JavaScript para implementar un mecanismo de sondeo que recupere un lote de mensajes de la cola y luego los procese en lotes de 3 (o el nivel de concurrencia deseado). De esta manera, puedes asegurarte de que el número de invocaciones concurrentes se mantenga dentro del límite establecido y que la ejecución se distribuya a lo largo de un período más largo.

    Otra opción podría ser introducir un retraso entre cada invocación de la función lambda. Podrías utilizar el SDK de AWS para JavaScript u otras herramientas de secuenciación para implementar una función de espera que pause entre cada invocación. De esta manera, puedes asegurarte de que el nivel de concurrencia se mantenga dentro del límite establecido y extender la ejecución de las funciones lambda durante un rango de tiempo específico.

    En resumen, la clave para abordar este problema es introducir un mecanismo de limitación que facilite la distribución de la ejecución durante el período deseado, al mismo tiempo que se mantiene el nivel de concurrencia dentro del límite establecido.

Comments are closed.