Configuración del comportamiento de escalado para las asignaciones de orígenes de eventos de SQS - AWS Lambda

Configuración del comportamiento de escalado para las asignaciones de orígenes de eventos de SQS

Para las colas estándar, Lambda utiliza el sondeo largo para sondear una cola hasta que se active. Cuando los mensajes están disponibles, Lambda comienza a procesar cinco lotes a la vez con cinco invocaciones simultáneas de la función. Si los mensajes siguen estando disponibles, Lambda aumenta el número de procesos que son lotes de lectura hasta 300 instancias más por minuto. El número máximo de lotes que una asignación de origen de eventos puede procesar simultáneamente es 1 000.

Para colas FIFO, Lambda envía mensajes a su función en el orden en que los recibe. Cuando envíe un mensaje a una cola FIFO, especifique un ID de grupo de mensajes. Amazon SQS garantiza que los mensajes del mismo grupo se entreguen a Lambda en orden. Cuando Lambda lee los mensajes en lotes, cada lote puede contener mensajes de más de un grupo, pero se mantiene el orden de los mensajes. Si la función devuelve un error, esta realiza todos los reintentos en los mensajes afectados antes de que Lambda reciba mensajes adicionales del mismo grupo.

Configuración de la simultaneidad máxima para los orígenes de eventos de Amazon SQS

Puede utilizar la configuración de simultaneidad máxima para controlar el comportamiento de escalado de los orígenes de eventos de SQS. La configuración de la simultaneidad máxima limita el número de instancias simultáneas de la función que puede invocar un origen de eventos de Amazon SQS. La simultaneidad máxima es una configuración a nivel de origen de eventos. Si tiene varios orígenes de eventos de Amazon SQS asignación de orígenes de eventos, cada origen de eventos puede tener una configuración de simultaneidad máxima independiente. Puede utilizar la simultaneidad máxima para evitar que una cola utilice toda la simultaneidad reservada de la función o el resto de la cuota de simultaneidad de la cuenta. No hay ningún cargo por configurar la simultaneidad máxima en un origen de eventos de Amazon SQS.

Es importante destacar que la simultaneidad máxima y reservada son dos configuraciones independientes. No establezca una simultaneidad máxima superior a la reservada de la función. Si configura la simultaneidad máxima, asegúrese de que la simultaneidad reservada de la función es mayor o igual que la simultaneidad máxima total para todos los orígenes de eventos de Amazon SQS de la función. De lo contrario, Lambda podría limitar sus mensajes.

Si no se establece la simultaneidad máxima, Lambda puede escalar su origen de eventos de Amazon SQS hasta la cuota de simultaneidad total de su cuenta, que es de 1000 de forma predeterminada.

nota

En el caso de las colas FIFO, las invocaciones simultáneas están limitadas por el número de ID de grupos de mensajes (messageGroupId) o por la configuración de simultaneidad máxima, lo que sea inferior. Por ejemplo, si tiene seis ID de grupos de mensajes y la simultaneidad máxima está establecida en 10, la función puede tener un máximo de seis invocaciones simultáneas.

Puede configurar la simultaneidad máxima en la asignación de orígenes de eventos nuevos y existentes de Amazon SQS.

Configure la simultaneidad máxima mediante la consola Lambda
  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija el nombre de una función.

  3. En Function overview (Descripción general de las funciones), elija SQS. Esta abre la pestaña Configuration (Configuración).

  4. Seleccione el activador de Amazon SQS y elija Edit (Editar).

  5. En Maximum concurrency (Simultaneidad máxima), introduzca un número entre 2 y 1000. Para desactivar la simultaneidad máxima, deje la casilla vacía.

  6. Seleccione Save (Guardar).

Configure la simultaneidad máxima mediante la AWS Command Line Interface (AWS CLI)

Utilice el comando asignación de orígenes de eventos con la opción --scaling-config. Ejemplo:

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config '{"MaximumConcurrency":5}'

Para desactivar la simultaneidad máxima, introduzca un valor vacío para --scaling-config:

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config "{}"
Configure la simultaneidad máxima mediante la API de Lambda

Utilice las acciones de CreateEventSourceMapping o UpdateEventSourceMapping con un objeto ScalingConfig.