繁体   English   中英

当 object dateAttribute 等于 X 时,DynamoDB Streams 触发 lambda

[英]Trigger lambda by DynamoDB Streams when object dateAttribute equal X

堆:

  • 无服务器,版本:

     Framework Core: 2.71.0 (local) Plugin: 5.5.4 SDK: 4.3.2 Components: 3.18.2
  • Php 7.2

具有特定条件的 DynamoDB stream 应该触发 lambda,我的无服务器 function 工作:

  createStatementFiles:
    handler: lambda/statement.php
    timeout: 899 # 14min 59s
    layers:
      - arn:aws:lambda:#{AWS::Region}:<account_id>:layer:php-73:1
    role: CreateStatementFilesRole
    reservedConcurrency: 10
    events:
      - stream:
          type: dynamodb
          arn: arn:aws:dynamodb:eu-west-3:<account_id>:table/<table_name>/stream/<stream_id>
          filterPatterns:
            - eventName: [INSERT]
              dynamodb:
                NewImage:
                  __partitionKey:
                    S: [statementBalance]

我绝对想要的是 DynamoDB stream 当且仅当 statementBalance 的日期 = statementBalance 月份的最后一天时触发 lambda,例如:

$currentDate = '2022-10-25';
$statementBalance->getDate() = '2022-02-10';
$lastDayOfTheMonth = '2022-02-28', not equal last day of the month of $currentDate (2022-10-31)

这是我想要的图表:

在此处输入图像描述

如果您有满足我需要的其他解决方案,可以防止每次插入 statementBalance 时触发 lambda,我很感兴趣。

提前,非常感谢您的帮助,

我为StatementBalance object 添加了一个新属性; " (bool) lastDayOfMonth "

此属性将触发 Lambda当且仅当lastDayOfMonth = true

  createStatementFiles:
    handler: lambda/statement.php
    timeout: 899 # 14min 59s
    layers:
      - arn:aws:lambda:#{AWS::Region}:<account_id>:layer:php-73:1
    role: CreateStatementFilesRole
    reservedConcurrency: 10
    events:
      - stream:
          type: dynamodb
          arn: ${fetchStreamARN:${opt:stage}-${opt:client}-TrzConnect}
          filterPatterns:
            - eventName: [INSERT]
              dynamodb:
                NewImage:
                  __partitionKey:
                    S: [statementBalance]
                  lastDayOfMonth:
                    N: [1]

感谢@jarmod!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM