AWS 无服务器流式事件错误处理
基于流的事件错误处理
基于流的事件源必须保持跨分片的记录顺序一致。
基于流的事件源可能是 Kinesis 数据流或 DynamoDB 流。
如果 Lambda 在处理一批数据时遇到问题,它将停止处理新数据。
**一批数据**是指大量数据。
要发现被阻塞的分片,可以使用**迭代器年龄指标**。
它衡量函数最近处理的流记录的年龄。
故障管理
通过使用四个配置选项,您可以更好地管理故障。
- 函数错误时二分批次
- 最大重试次数
- 最大记录年龄
- 失败目的地
如果发生函数错误,Lambda 将把批次分成两半,并分别恢复每一半。
最大重试次数和最大记录年龄限制了失败批次的重试次数。
失败目的地允许您发送失败记录以进行离线处理。
基于流的事件错误处理视频
W3schools.com 与亚马逊网络服务合作,为我们的学生提供数字培训内容。
基于流的事件错误处理的工作原理
当函数产生错误时,Lambda 将批次分成两半(**二分批次**)。
Lambda 将每一半单独交付给您的函数,并保持记录顺序。
当 Lambda 分割批次时,它还会重置重试和最大年龄参数。
Lambda 将继续分割批次,直到找到错误的记录。
Lambda 将根据最大重试次数继续尝试发送错误的记录。
如果它继续失败,Lambda 将将其发送到为失败目的地定义的 SNS 主题。
删除错误记录后,Lambda 回到它创建的每个较小的批次。
此过程的缺点是一些记录可能会被处理多次。
它也称为**幂等性**。
幂等性必须由您管理。