Amazon web services 定义可触发Lambda函数的多个ARN
以下是我在AWS文档中看到的Amazon web services 定义可触发Lambda函数的多个ARN,amazon-web-services,aws-lambda,amazon-dynamodb,amazon-cloudformation,amazon-dynamodb-streams,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Amazon Cloudformation,Amazon Dynamodb Streams,以下是我在AWS文档中看到的AWS::Lambda::EventSourceMapping的示例CloudFormation语法: Type: "AWS::Lambda::EventSourceMapping" Properties: BatchSize: Integer Enabled: Boolean EventSourceArn: String FunctionName: String StartingPosition: String 假设我有一组DDB流ARN,我
AWS::Lambda::EventSourceMapping
的示例CloudFormation语法:
Type: "AWS::Lambda::EventSourceMapping"
Properties:
BatchSize: Integer
Enabled: Boolean
EventSourceArn: String
FunctionName: String
StartingPosition: String
假设我有一组DDB流ARN,我想将其用作一个lambda函数的触发器(而不是一个ARN作为触发器)。我试图这样定义这种关系:
Parameters:
DDBStreamARN:
Type: String
Default: arn:aws:dynamodb:us-west-2:someId1
AllowedValues:
- arn:aws:dynamodb:us-west-2:someId1
- arn:aws:dynamodb:us-west-2:someId2
- ...
Description: ARNs for the DDB Streams
Resources:
RegistrationRequestStreamMapping:
Type: AWS::Lambda::EventSourceMapping
Properties:
BatchSize: 70
EventSourceArn:
Ref: DDBStreamARN
FunctionName:
Fn::GetAtt:
- TestLambdaFunction
- Arn
StartingPosition: TRIM_HORIZON
Enabled: True
但是语法似乎不起作用,因为只有默认值(
arn:aws:dynamodb:us-west-2:someId1
)用作触发器,而其他arn不会触发lambda函数。关于如何解决这个问题有什么建议吗?部署两次CFT。一次使用arn:aws:dynamodb:us-west-2:someId1
,第二次使用arn:aws:dynamodb:us-west-2:someId2
作为ddbstream-arn
参数的值。可以为相同的Lambda定义多个aws::Lambda::EventSourceMapping
比如,
RegistrationRequestStreamMapping1:
Type: AWS::Lambda::EventSourceMapping
Properties:
BatchSize: 70
EventSourceArn:
Ref: DDBStream1ARN
FunctionName:
Fn::GetAtt:
- TestLambdaFunction
- Arn
StartingPosition: TRIM_HORIZON
Enabled: True
RegistrationRequestStreamMapping2:
Type: AWS::Lambda::EventSourceMapping
Properties:
BatchSize: 70
EventSourceArn:
Ref: DDBStream2ARN
FunctionName:
Fn::GetAtt:
- TestLambdaFunction
- Arn
StartingPosition: TRIM_HORIZON
Enabled: True