【问题标题】:Configure DynamoDB stream trigger with insert only仅使用插入配置 DynamoDB 流触发器
【发布时间】:2017-04-27 23:57:34
【问题描述】:

我目前有一个 AWS DynamoDB 流触发 Lambda 函数。

Lambda 函数由 DynamoDB 中的 insertupdate 事件触发。有没有办法更改配置,以便 Lambda 函数由“插入”触发?

【问题讨论】:

    标签: node.js amazon-web-services amazon-dynamodb aws-lambda


    【解决方案1】:

    据我所知,这是不可能的。 AWS Lambda polls the stream 并在检测到任何类型的流记录更新时调用您的 Lambda 函数。您的 Lambda 将不得不忽略您不感兴趣的记录。您可以使用流记录的 eventName property(可以有值 INSERT | MODIFY | REMOVE)

    【讨论】:

    • 感谢您的回复,但是使用 Lambda 函数忽略记录会导致调用 Lambda 产生不必要的成本。我真的觉得 AWS 应该让它可配置。
    • 是的,AWS,请在这里有点客户痴迷?
    • AWS 仍然不支持这个?
    【解决方案2】:

    您可以使用您的 lambda 函数来忽略除插入之外的其余部分。

     for record in event.get('Records'):
        if record.get('eventName') in ('INSERT'):
           """ code for execution. """
    
        elif record.get('eventName') == 'DELETE':
            pass
        elif record.get('eventName') ==  'MODIFY':
            pass
    

    【讨论】:

    • 为我们不会使用的 lambda 调用付费似乎不是好的架构
    • 没有像 DELETE 这样的 eventName,或者至少现在没有了。替换为 REMOVE
    猜你喜欢
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多