如何通过编程方式为已创建的SQS Queue添加已有的Lambda触发器
关于SQS队列绑定Lambda触发器的编程实现解答
完全可以通过编程实现该操作,无需手动在AWS控制台操作,整体配置流程分为两个必备环节:
- 先为目标Lambda的执行角色添加SQS队列的相关访问权限,必须包含的权限项为
sqs:ReceiveMessage、sqs:DeleteMessage、sqs:GetQueueAttributes,否则触发器无法正常拉取处理消息 - 调用Lambda服务的
CreateEventSourceMapping官方API,传入目标SQS队列的ARN、Lambda函数名、批量拉取大小等参数即可完成触发器创建
不同工具的实现方式示例:
- AWS CLI 执行命令:
aws lambda create-event-source-mapping --function-name <Lambda函数名称/ARN> --event-source-arn <SQS队列ARN> --batch-size <单次拉取消息数>- Python Boto3 SDK 调用示例:
import boto3 lambda_client = boto3.client('lambda') lambda_client.create_event_source_mapping( FunctionName='你的Lambda函数名', EventSourceArn='你的SQS队列ARN', BatchSize=10 )
你之前没找到对应文档,是因为这个配置的入口属于Lambda服务的事件源映射能力,不属于SQS服务的配置项,搜索Lambda事件源映射相关的API说明就能找到完整参数定义。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

