问题描述
我正在尝试创建一个lambda函数,该函数使用DynamoDB表中的流。然而,我想知道处理在执行过程中可能因某些错误而未被处理的数据的最佳实践是什么?例如,我的lambda失败,流的一部分,重新处理丢失的数据的最佳方式是什么?
谢谢
推荐答案
DynamoDB Streams为每个事件调用lambda函数,直到它成功处理它(直到代码调用成功回调)。
在执行时出现错误的情况下,您需要在代码中处理它,否则Lambda将不会继续处理流中的其余消息。
如果出现由于错误而需要单独处理消息的情况,您可以使用死信队列(使用Amazon SQS)推送消息并继续处理流中的其余项。您可以使用单独的逻辑来处理此队列中的消息。