如何实现幂等lambda函数?

时间:2017-07-14 09:46:23

标签: amazon-dynamodb aws-lambda idempotent amazon-dynamodb-streams

我有这样的管道 -
表1(dynamo db) - > aws lambda - >表2(dynamo db)

因此,只要表1中有任何更新hapeens,lambda就会被触发。因此,lambda基本上从表1中批量读取(1000条记录),然后执行批量计算以得出表2中需要更新的记录列表。表2基本上维护了表1中发生的特定事件的计数。 / p>

所以问题是如果我们两次发送同一批记录,那么它会将表2中的计数增加两次。

为什么我在考虑这个问题时,在其中一个lambda函数(lambda运行的数量与dynamo db中的分区数量为1:1的关系)中断时,它执行了一些写入操作,它将重新发送最后一批阅读。

为了避免这种情况,可以存储我们已经计算过的记录的序列号并将其存储在表2中。因此,当我们更新时,我们可以检查它是否已经计算过。但我们需要保持该列表的大小,否则我们将遇到性能问题。但它的大小应该是一个问题。

处理这类问题的写入方法应该是什么?

0 个答案:

没有答案