O Lambda gerencia a fila de eventos assíncronos da função e realiza novas tentativas em caso de erro. Se a função retornar um erro, o Lambda, por padrão, tentará executá-la mais duas vezes, com um intervalo de um minuto entre a primeira e a segunda tentativa, e um intervalo de dois minutos entre a segunda e a terceira tentativa. Os erros de função incluem erros retornados pelo código e pelo runtime da função, como o tempo ser atingido.
Se a função não tiver simultaneidade suficiente disponível para processar todos os eventos, as solicitações adicionais serão limitadas. Para erros de controle de utilização (429) e de sistema (série 500), o Lambda retorna o evento para a fila e, por padrão, tenta executar a função novamente por até 6 horas. O intervalo de repetição aumenta exponencialmente de 1 segundo após a primeira tentativa para no máximo 5 minutos. Se a fila contém muitas entradas, o Lambda aumenta o intervalo de repetição e reduz a taxa em que lê eventos da fila.
Mesmo que a função não retorne um erro, é possível que ela receba o mesmo evento do Lambda várias vezes, porque a própria fila se tornará consistente. Se a função não conseguir acompanhar os eventos recebidos, é possível que eventos sejam excluídos da fila sem serem enviados para a função. Certifique-se de que seu código de função lide corretamente com eventos duplicados, e de que você tenhas simultaneidade suficiente disponível para lidar com todas as invocações.
Quando a fila é muito longa, novos eventos podem expirar antes de o Lambda ter a chance de enviá-los para sua função. Quando há falha em todas as tentativas de processamento de um evento ou ele expira, o Lambda o descarta. É possível configurar o tratamento de erros para uma função a fim de reduzir o número de tentativas que o Lambda executa ou descartar eventos não processados mais rapidamente.
Também é possível configurar o Lambda para enviar um registro de invocação para outro serviço. Consulte Capturar registros de invocações assíncronas do Lambda para saber mais.