[英]In dynamodb, what is the difference between using dynamo streams + lambda trigger versus kinesis streams + lambda trigger?
[英]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.