如何实现Lambda触发器在全局发电机Db表上触发一次



我有一个dynamoDb表,它在两个区域之间设置为全局(2019版本(。

我在表上指定了一个lambda函数作为触发器。当一条记录插入到表的east版本中时,就会触发lambda的east版。然后将该记录复制到表的西部版本,并触发lambda的西部版本。

我想触发一个lambda。但我也希望两个触发器都能启用,以防一个区域出现故障。

我怎样才能做到这一点?我宁愿不让我的触发器逻辑是幂等的。

我不知道这是否可以在没有幂等性的情况下实现,除非你想让它变得非常脆弱和复杂。在分布式系统中,如果不使用某种幂等性过滤器,即使不是不可能,也很难获得精确的一次端到端交付。

在不知道自己在做什么的情况下,不如先写入本地Step函数,而不是直接写入DynamoDB。数据在step函数中进行处理,然后写入DynamoDB。这样,当它进入DynamoDB时,它已经是";处理过的";并且复制不会出现任何问题。我不确定这是否可行,因为我不知道你的全部情况,但可能会。

我认为您可以使用FIFO SQS。Lambda响应您的dynamoDB流,可以写入FIFO SQS。

最新更新