Publicado en: Nov 25, 2019

Ahora, AWS Lambda admite cuatro características de gestión de errores para procesar streams de Kinesis y DynamoDB: bisección en errores de función, antigüedad máxima de registros, máximo de reintentos y destino para errores. Estas nuevas características permiten personalizar las respuestas a los errores de procesamiento de datos y crear aplicaciones de procesamiento de streams más sólidas.

Lambda procesa los registros de datos de streams de Kinesis y DynamoDB en lotes. Anteriormente, cuando la función devolvía un error, Lambda detenía el procesamiento de datos en la partición afectada y reintentaba el lote completo de registros. Estos registros se reintentaban continuamente hasta que Lambda los procesaba correctamente o el origen de eventos los marcaba como vencidos.

Bisección en errores de función
Con la bisección en errores de función habilitada, Lambda divide el lote de registros afectado en dos cuando una función devuelve un error y lo intenta con cada parte por separado. Esto permite separar con facilidad el registro de datos con formato incorrecto del resto del lote y procesar el resto de registros de datos correctamente.

Antigüedad máxima de registros
La función de Lambda puede omitir el procesamiento de un registro de datos cuando ha alcanzado su antigüedad máxima, que se puede configurar entre 60 segundos y 7 días.

Máximo de reintentos
La función de Lambda puede omitir el reintento de un lote de registros cuando alcanza el máximo de reintentos, que se puede configurar entre 0 y 10 000.  

Destino para errores
Ahora, la función de Lambda puede continuar procesando una partición aunque devuelva un error. Cuando un registro de datos alcanza el máximo de reintentos o la antigüedad máxima, es posible enviar sus metadatos, como el ID de partición y el ARN de stream, a uno de estos dos destinos para su investigación: una cola de SQS o un tema de SNS.

Puede empezar a usar estas características mediante la consola de administración de AWS, la interfaz de línea de comandos (CLI) de AWS, AWS CloudFormation o el AWS SDK para Lambda. Se puede usar sin costo adicional en todas las regiones de AWS donde está disponible AWS Lambda. Para obtener más información sobre las regiones en las que está disponible AWS Lambda, consulte la tabla de regiones de AWS. Para obtener más información, consulte Uso de AWS Lambda con Amazon Kinesis y Uso de AWS Lambda con Amazon DynamoDB en la Guía para desarrolladores de AWS Lambda.