如何从AWS DynamoDB Streams触发指定版本的AWS Lambda函数
DynamoDB Streams触发指定版本/别名Lambda的配置方法
DynamoDB控制台仅支持选择未带版本标记的Lambda函数名,无法直接配置版本/别名,但可以通过CLI/CloudFormation/SDK完成配置,实测可正常运行,具体操作步骤如下:
第一步:配置Lambda调用权限
首先需要给DynamoDB Streams服务授予调用指定版本/别名Lambda的权限,执行如下CLI命令:aws lambda add-permission \ --function-name arn:aws:lambda:<区域>:<账号ID>:function:<函数名>:<版本号/别名> \ --statement-id dynamodb-streams-invoke-perm \ --action lambda:InvokeFunction \ --principal dynamodb.amazonaws.com \ --source-arn arn:aws:dynamodb:<区域>:<账号ID>:table/<表名>/stream/<流标识>第二步:创建Lambda事件源映射
DynamoDB流触发器本质是Lambda侧的事件源映射资源,直接通过Lambda CLI创建即可指定目标版本/别名:aws lambda create-event-source-mapping \ --function-name arn:aws:lambda:<区域>:<账号ID>:function:<函数名>:<版本号/别名> \ --event-source-arn arn:aws:dynamodb:<区域>:<账号ID>:table/<表名>/stream/<流标识> \ --starting-position LATEST \ --batch-size 100 \ --enabled现有触发器修改方法
如果已经在DynamoDB控制台创建了默认指向$LATEST版本的触发器,可以直接在Lambda控制台对应函数的「触发器」页签,找到目标DynamoDB触发器,编辑配置后将函数ARN替换为带版本/别名的ARN,保存即可生效。
配置完成后可执行
aws lambda get-event-source-mapping --uuid <事件源映射ID>校验返回参数中的FunctionArn字段,确认已携带版本/别名后缀。使用别名时,后续只需调整别名指向的函数版本,无需修改触发器配置即可完成版本切换。
内容的提问来源于stack exchange,提问作者Amox Cillin
相关产品推荐
相关产品推荐

