【问题标题】:How to implement a Lambda trigger to fire once on a global dynamoDb table如何实现 Lambda 触发器以在全局 dynamoDb 表上触发一次
【发布时间】:2020-10-19 17:27:04
【问题描述】:

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

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

我想触发一个 lambda。但我也希望在一个区域出现故障时启用两个触发器。

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

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-dynamodb


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在不了解您在做什么的情况下,与其直接写入 DynamoDB,不如先写入本地 Step Function。数据在 step 函数中处理,然后写入 DynamoDB。这样,当它到达 DynamoDB 时,它已经被“处理”并且复制发生没有问题。我不确定这是否可行,因为我不了解您的全部情况,但它可能会。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 东/西 SQS 不会有同样的问题吗?
        • 是的,没有意识到东西方问题:(
        猜你喜欢
        • 2019-01-28
        • 2023-03-18
        • 1970-01-01
        • 2019-08-02
        • 2021-01-24
        • 2018-12-18
        • 2018-08-29
        • 1970-01-01
        • 2015-10-13
        相关资源
        最近更新 更多