相关疑难解决方法(0)

过滤特定字段更改的 DynamoDB Streams 事件

我对 DynamoDB 表的特定(数字)字段/列(例如“计数”)的值变化感兴趣。

我知道我可以编写一个 Lambda,一旦触发,就会将新图像与旧图像进行比较,然后决定是否实际执行某项操作。但是,由于我的表收集了某种状态更新,并且其中只有少数对我的触发器实际上很重要,因此在这种设置中,大多数情况下都会毫无意义地调用 Lambda(而且,我会因以下原因而被收取费用)调用了 Lambda)。

所以我想过滤 DynamoDB Stream 事件,根据docs,这应该是可能的(即使没有给出类似情况的示例)。

我的问题是我找不到如何OldImage['count'] != NewImage['count']在过滤器模式中编写等效的内容。

下面是我的 SAM 模板的这一部分应如何显示的示例。

CountChangeDetector:
    Type: 'AWS::Serverless::Function'
    Properties:
      CodeUri: src/
      Handler: trigger.lambda_handler
      Runtime: python3.8
      FunctionName: "CountChangeDetector"
      AutoPublishAlias: live      
      Events:
        Stream:
          Type: DynamoDB
          Properties:
            Stream: !GetAtt MyTable.StreamArn
            BatchSize: 10
            StartingPosition: TRIM_HORIZON
            FilterCriteria:
              Filters:
                - Pattern: '{"OldImage": {"count": [ { "anything-but": [ {"NewImage": {"count"}} ] } ]}}'
Run Code Online (Sandbox Code Playgroud)

当然,我定义模式的方式不正确,并且出现错误。

那么,该模式该如何定义呢?

amazon-web-services amazon-dynamodb aws-lambda amazon-dynamodb-streams

9
推荐指数
1
解决办法
2011
查看次数