能否将Amazon MQ主题作为AWS Lambda的事件源使用?
是否支持直接将Amazon MQ主题作为Lambda的事件源?
目前AWS Lambda原生的Amazon MQ事件源触发器仅支持队列(Queue)类型的目的地,不支持直接配置主题(Topic)作为事件源,这也是控制台点击Amazon MQ选项后默认跳转至队列配置页的原因。
替代方案
以下是可落地的消息转发方案,按需选择即可:
- 方案1:队列绑定/虚拟主题中转(首选,无额外开发成本)
- 若使用RabbitMQ引擎的Amazon MQ:直接为目标Topic类型的Exchange绑定一个专属队列,设置匹配的Routing Key规则将主题消息路由到该队列,再将该队列配置为Lambda的Amazon MQ触发器即可。
- 若使用ActiveMQ引擎的Amazon MQ:使用虚拟主题特性,按照默认规则命名主题为
VirtualTopic.自定义主题名,并创建对应消费队列Consumer.自定义消费端标识.VirtualTopic.自定义主题名,发送到主题的消息会自动同步到该队列,再将队列配置为Lambda触发器即可。
- 方案2:自定义消费转发层
部署一个常驻的轻量消费进程(可运行在ECS、EKS或EC2上),订阅目标Amazon MQ主题,收到消息后直接调用Lambda的Invoke接口完成消息转发。该方案适合需要在转发前做消息过滤、格式转换、自定义重试逻辑的场景。 - 方案3:通过SQS队列中转
配置Amazon MQ的消息转发规则:RabbitMQ引擎可通过Shovel插件、ActiveMQ引擎可通过Bridge功能,将主题的消息自动转发到SQS标准队列,再将SQS队列配置为Lambda的事件源即可。
内容的提问来源于stack exchange,提问作者user7111260
相关产品推荐
相关产品推荐

