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.

¿Existe una solución alternativa para la cola FIFO de Amazon SQS para mantener el orden de los eventos que se reciben de S3?

Tengo 10 funciones lambda para un proyecto y una función lambda de enrutador que copia el archivo desde SFTP y lo coloca en S3, luego S3 activa la función lambda según el tipo de archivo.

Mi escenario es mantener el orden de los eventos de archivo para un tipo de archivo.

Pensé en usar SQS-FIFO para encolar los eventos de S3, pero luego descubrí que SQS-FIFO no admite que S3 procese los eventos en el orden en que se empujaron. ¿Cuál es la mejor solución alternativa para esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como SQS-FIFO no admite S3 para procesar eventos en el orden en que se empujan, la mejor solución alternativa para mantener el orden de los eventos de archivos para un tipo de archivo es utilizar AWS Lambda EventSourceMapping.

    Lambda EventSourceMapping es una asignación de desencadenador entre un cubo S3 y una función Lambda. Permite que Lambda procese automáticamente nuevos archivos cargados en un cubo S3 en el orden en que se cargan. Al utilizar la configuración de EventSourceMapping para el cubo S3 que contiene los archivos, se puede mantener el orden necesario de los eventos.

    Los pasos para implementar esta solución son los siguientes:

    1. Crea un cubo S3 y envía archivos a él.
    2. Crea una nueva función Lambda que procesará los archivos cargados.
    3. Usando AWS CLI, crea una asignación de EventSourceMapping entre el cubo S3 y la función Lambda.
    4. Establece el valor de BatchSize adecuado para EventSourceMapping para garantizar el orden necesario de los eventos.

    Al crear un EventSourceMapping entre el cubo S3 y la función Lambda, se puede mantener el orden de los eventos incluso para múltiples tipos de archivos con diferentes requisitos de procesamiento.

Comments are closed.