发布于: Dec 20, 2019

我们现在支持四种处理 Kinesis 和 DynamoDB 流的故障处理功能,包括函数出错时二等分、最大记录年龄、最大重试次数和失败时的目标。这些新功能允许您自定义对数据处理失败的响应,并构建更具弹性的流处理应用程序。 

Lambda 分批处理来自 KinesisDynamoDB 流的数据记录。以前,当您的函数返回错误时,Lambda 会停止处理受影响的分片中的任何数据,并重试整个批次的记录。这些记录将持续重试,直到 Lambda 成功处理或由事件源过期为止。 

函数出错时二等分
启用函数出错时二等分后,Lambda 会在函数返回错误时将受影响的记录批次一分为二,并分别重试。这使您可以轻松地将出错的数据记录与批次的其余部分分开,并成功处理其余的数据记录。

最大记录年龄
当数据记录达到其最大记录年龄时,Lambda 函数可以跳过其处理过程,该年龄的可配置范围为 60 秒到 7 天。 

最大重试次数
当达到最大重试次数时,Lambda 函数可以跳过某批记录的重试,该次数可配置范围为 0 到 10000。 

失败时的目标
现在,您的 Lambda 函数即使在返回错误时也可以继续处理分片。当数据记录达到其最大重试次数或最大记录年龄,您可以将其元数据(如分片 ID 和流 ARN)发送到以下两个目标之一供深入分析:SQS 队列或 SNS 主题。 

您可以使用 亚马逊云科技管理控制台、Amazon CLI 或适用于 Lambda 的 亚马逊云科技开发工具包开始使用这些功能。在提供 Amazon Lambda 的所有中国区域可以免费使用这些功能。要详细了解中国哪些区域提供 Amazon Lambda,请参阅 亚马逊云科技 中国区域表。要了解更多信息,请参阅 Amazon Lambda 开发人员指南中的将 Amazon Lambda 与 Amazon Kinesis 配合使用将 Amazon Lambda 与 Amazon DynamoDB 配合使用,以及这篇博文。