- Más nuevo
- Más votos
- Más comentarios
A lot depends on the logic in your Lambda around when it calls DeleteMessage. You want to make sure that it's called if and only if processing of the message has been successful.
"It could be that expected behavior here is that when lambda times out and gets terminated, it implicitly calls set visibility timeout on the message" - no, that's not what happens. The idea is that if your Lambda times out without calling DeleteMessage then once the message's visibility timeout expires it will become visible on the queue again so it can be picked up for processing.
Given that your vis timeout ia 1000 but your 3rd Lambda call is only 900 seconds after the 2nd call, there's no way it could get the same message. Another call later could get the same message but only if DeleteMessage hasn't been called on it previously.
Contenido relevante
- OFICIAL DE AWSActualizada hace 7 meses
- OFICIAL DE AWSActualizada hace un año
My lambda doesn't have any logic at all that touches SQS including calling DeleteMessage, it's only receiving events. So how does a lambda that times out end up deleting a message?