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
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
Abra la página de Funciones
en la consola de Lambda. -
Elija el nombre de una función.
-
En Function overview (Descripción general de las funciones), elija SQS. Esta abre la pestaña Configuration (Configuración).
-
Seleccione el activador de Amazon SQS y elija Edit (Editar).
-
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.
-
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--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.