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

Puede controlar el comportamiento de escalado de las asignaciones de orígenes de eventos de Amazon SQS mediante la configuración de concurrencia máxima o la habilitación del modo aprovisionado. Estas opciones se excluyen mutuamente.

De forma predeterminada, Lambda escala automáticamente los sondeadores de eventos en función del volumen de los mensajes. Cuando habilita el modo aprovisionado, asigna un número mínimo y máximo de recursos de sondeo dedicados que permanecen preparados para gestionar los patrones de tráfico esperados. Esto le permite optimizar el rendimiento de la asignación de orígenes de eventos de dos maneras:

  • Modo estándar (predeterminado): Lambda administra automáticamente el escalado, a partir de un número reducido de sondeadores y con aumentos o reducciones según la carga de trabajo.

  • Modo aprovisionado: se configuran recursos de sondeo dedicados con límites mínimos y máximos, lo que permite un escalado 3 veces más rápido y una capacidad de procesamiento hasta 16 veces mayor.

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 disponibles, Lambda aumenta el número de procesos que son lotes de lectura hasta 300 invocaciones simultáneas más por minuto. El número máximo de invocaciones que una asignación de orígenes de eventos puede procesar simultáneamente es 1250. Cuando el tráfico es bajo, Lambda reduce el procesamiento a 5 invocaciones simultáneas y puede optimizarlo a tan solo 2 invocaciones simultáneas para reducir las llamadas a Amazon SQS y los costos correspondientes. Sin embargo, esta optimización no está disponible cuando se habilita la configuración de simultaneidad máxima.

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.

Cuando se utiliza el modo aprovisionado, cada sondeador de eventos puede gestionar hasta 1 MB/s de rendimiento, hasta 10 invocaciones simultáneas o hasta 10 llamadas a la API de sondeo de Amazon SQS por segundo. Lambda escala el número de sondeadores de eventos entre el mínimo y el máximo configurados, y suma rápidamente hasta 1000 concurrencias por minuto para proporcionar un procesamiento coherente de baja latencia de los eventos de Amazon SQS. El uso del modo aprovisionado conlleva costos adicionales. Para obtener más información sobre precios, consulte Precios de AWS Lambda. Cada sondeador de eventos utiliza sondeos prolongados en la cola de SQS, con hasta 10 sondeos por segundo, lo que supone un costo por las solicitudes de la API de SQS. Para obtener más información, consulte Precios de Amazon SQS. El escalado y la concurrencia se controlan mediante estas configuraciones mínima y máxima de los sondeadores de eventos, en lugar de usar la configuración de concurrencia máxima, ya que estas opciones no pueden usarse juntas.

nota

No puede utilizar la configuración de concurrencia máxima y el modo aprovisionado al mismo tiempo. Cuando el modo aprovisionado está habilitado, puede controlar el escalado y la concurrencia de la asignación de orígenes de eventos de Amazon SQS mediante el número mínimo y máximo de sondeadores de eventos.

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. Tenga en cuenta que la concurrencia máxima no se puede utilizar con el modo aprovisionado habilitado. 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 la cuota de simultaneidad de su cuenta se establece en el valor predeterminado (1000), puede escalarse una asignación de orígenes de eventos de Amazon SQS para invocar instancias de funciones hasta este valor, a menos que especifique una simultaneidad máxima.

Si recibe un aumento de la cuota de simultaneidad predeterminada de su cuenta, es posible que Lambda no pueda invocar instancias de funciones simultáneas hasta la nueva cuota. De forma predeterminada, Lambda puede escalar para invocar hasta 1250 instancias de funciones simultáneas para una asignación de orígenes de eventos de Amazon SQS. Si esto no es suficiente para su caso de uso, póngase en contacto con el servicio de asistencia de AWS para tratar un aumento de la simultaneidad de asignación de orígenes de eventos de Amazon SQS de su cuenta.

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.