我试图使用serverless.yml配置在多个表上使用dynamodb流触发lambda函数。是否可以在aws serverless.yml的触发器上配置通用arn。
有dynamodb表req_tnt1、req_tnt2、req_tnt2 ...so on。每当req_tnt*表更新时,我都会触发lambda,并将信息存储在elasticsearch中,以便进行免费文本搜索。我能够完成触发lambda和更新弹性搜索的单个表,但我在所有表的enable触发器(req_tnt*)上都面临问题。
发布于 2020-03-27 16:36:31
不幸的是,在这里不可能通配符。
在CloudFormation中将流定义为Serverless中的Lambda输入,如下所示:
"MyLambdaEventSourceMappingDynamodbOrdersTable": {
"Type": "AWS::Lambda::EventSourceMapping",
"DependsOn": "MyLambdaIamRoleLambdaExecution",
"Properties": {
"BatchSize": 10,
"EventSourceArn": {
"Fn::GetAtt": [
"OrdersTable",
"StreamArn"
]
},
"FunctionName": {
"Fn::GetAtt": [
"MyLambdaLambdaFunction",
"Arn"
]
},
"StartingPosition": "TRIM_HORIZON",
"Enabled": "True",
"MaximumBatchingWindowInSeconds": 60
}
},类型为AWS::Lambda::EventSourceMapping的资源使用属性EventSourceArn按照文档指定单个源。
您可以通过编写另一个Lambda函数以编程方式添加新的事件源映射,该函数在创建新表时将CloudWatch事件作为其输入,然后将该表的EventSourceMapping添加到Lambda函数中。
这可能会有扩展限制,因为每个Lambda的事件源映射的数量很可能是有限的(尽管我找不到数量)。
https://stackoverflow.com/questions/60888306
复制相似问题