不幸的是,这里不可能使用通配符。
在无服务器中将流定义为 Lambda 输入会导致 CloudFormation 如下所示:
"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 的事件源映射数量很可能是有限的(尽管我找不到这个数字)。