Tengo una cola sqs definida. Tengo una API que cuando alguien la llama, lambda envía un evento a la cola de sqs.
Luego, el siguiente lambda se conecta como disparador a esa cola. Estoy usando el paquete de elevación sin servidor npm. Pero mi mensaje se procesa 3 veces, que no es lo que esperaba. Espero que el mensaje sea procesado una vez.
En mi trabajador lambda tengo la siguiente lógica, que no sé por qué se ejecuta 3 veces (reintentos de elevación predeterminados). Pero según tengo entendido, este procesamiento debe marcarse como exitoso y no ejecutarlo 3 veces, sino solo una vez.
export const queueWorkerLambda = async (event: SQSEvent, context: Context) => { const records: SQSRecord[] = event.Records; const processRecord = async (body) => { console.log('processing', body); // executed 3 times, I expect only 1 return true; }; return await Promise.all( records.map(async (record) => { const body = JSON.parse(record.body); return await processRecord(body); }); ); };Mi lógica es que debería procesar el mensaje de la cola y listo. Solo 1 registro. No volver a intentar ejecutarlo 3 veces como observo en los registros.