Publicado: Nov 25, 2019

Agora o AWS Lambda oferece suporte a quatro recursos de tratamento de falhas para o processamento de streams do Kinesis e do DynamoDB: erro de divisão em função, idade máxima do registro, máximo de novas tentativas e destino em falha. Esses novos recursos permitem personalizar respostas a falhas no processamento de dados e criar aplicativos de processamento de streams mais resilientes.

O Lambda processa registros de dados dos streams do Kinesis e DynamoDB em lotes. Anteriormente, quando sua função retornava um erro, o Lambda parava de processar qualquer dado no fragmento afetado e tentava novamente o lote inteiro de registros. Esses registros são repetidos continuamente até serem processados com êxito pelo Lambda ou expirados pela origem do evento.

Divisão em caso de erro na função
Com a divisão em caso de erro na função ativada, o Lambda divide o lote de registros afetado em dois quando uma função retorna um erro e faz novas tentativas separadas em cada um deles. Isso permite que você separe facilmente o registro de dados malformado do restante do lote e processe o restante dos dados com êxito.

Idade máxima do registro
Sua função do Lambda pode ignorar o processamento de um registro de dados quando atingir a Idade máxima do registro, que pode ser configurada de 60 segundos a 7 dias.

Máximo de novas tentativas
Sua função do Lambda pode ignorar novas tentativas em um lote de registros quando atingir o Máximo de novas tentativas, que podem ser configuradas de 0 a 10.000.  

Destino com falha
Agora sua função do Lambda pode continuar processando um fragmento, mesmo quando ele retornar um erro. Quando um registro de dados atinge o Máximo de novas tentativas ou a Idade máxima do registro, você pode enviar seus metadados, como ID de fragmento, e transmitir o ARN para um destes dois destinos para uma investigação mais aprofundada: uma fila do SQS ou um tópico do SNS.

Você pode começar com esses recursos com o Console de Gerenciamento da AWS, a ILC da AWS, o AWS CloudFormation ou o SDK da AWS para Lambda. Eles podem ser usados sem custo adicional em todas as regiões da AWS em que o AWS Lambda estiver disponível. Para obter mais informações sobre onde o AWS Lambda está disponível, consulte a tabela de regiões da AWS. Para saber mais, consulte Como usar o AWS Lambda com o Amazon Kinesis e Como usar o AWS Lambda com o Amazon DynamoDB no Guia do desenvolvedor do AWS Lambda.