AWS Serverless 事件流错误处理
流式事件错误处理
流式事件源必须在分片之间保持记录顺序的一致性。
流式事件源可以是 Kinesis Data Streams 或 DynamoDB Streams。
如果 Lambda 在处理数据批次时遇到问题,它将停止处理新数据。
数据批次是指大量数据。
要发现被阻塞的分片,您可以使用 Iterator-Age 指标。
它衡量您的函数最近处理的流记录的年龄。
故障管理
通过使用四个配置选项,您可以更好地管理故障
- 函数错误时拆分批次
- 最大重试次数
- 最大记录年龄
- 失败目标
如果发生函数错误,Lambda 会将批次一分为二,然后单独处理每个半批次。
最大重试次数和最大记录年龄限制了对失败批次的重试次数。
失败目标允许您将失败的记录发送以供离线处理。
流式事件错误处理视频
W3schools.com 与 Amazon Web Services 合作,为我们的学生提供数字培训内容。
流式事件错误处理的工作原理
当函数产生错误时,Lambda 将批次一分为二(拆分批次)。
Lambda 会单独将每个半批次传递给您的函数,并保持记录顺序。
当 Lambda 拆分批次时,它还会重置重试和最大年龄参数。
Lambda 将继续拆分批次,直到找到错误记录。
Lambda 将根据最大重试次数继续尝试发送错误记录。
如果持续失败,Lambda 将将其发送到为失败目标定义的 SNS 主题。
在移除错误记录后,Lambda 会重新处理其生成的所有较小批次。
这个过程的缺点是某些记录可能会被处理多次。
这也被称为幂等性。
幂等性需要您来管理。