使用 lambda 递增 dynamoDB 表属性的正确幂等设置?



我想调度一个lambda函数来定期增加dynamo表中的一些属性,但lambda的并发性通过多次运行它来丢弃增量。

试图将并发性限制为1似乎也不起作用,因为这通常会导致函数在完成之前受到速率限制。

有没有一种正确的方法来设置aws lambda函数,使其a(只运行一次,或者b(幂等递增,使该函数即使同时运行也只能递增一次值?

谢谢。

从您的问题中还不清楚是什么触发了lambda函数。如果您使用CloudWatch规则按计划触发函数,则每个"tick"(定义为您配置的速率(只会进行一次调用。

关于你关于幂等性的问题:

如果触发器是同步的,则只有在由于失败而重试的情况下,才会使用相同的输入多次调用lambda,并且调用不会同时运行。如果它是异步的,它可能会被触发几次,您应该编写代码来正确处理这种情况(尽管它只发生在调用的很小部分(。

看起来你的lambda被触发的次数比预期的要多,这可能是问题所在,而不是幂等性。在任何情况下,都可以使用lambda的输入和上下文的请求id来使代码成为幂等的。

相关内容

最新更新