aws sqs java_从AWS Lambda读取SQS队列

我有以下基础设施:

我有一个带有NodeJS Express进程的EC2实例在端口上侦听消息(进程1) . 每次进程收到消息时,都会将其发送到SQS队列 . 然后我在同一台机器上有另一个进程使用长轮询读取队列(进程2) . 当它在队列中找到消息时,它会将数据插入位于RDS实例上的MariaDB数据库中 .

(只是为了澄清,消息是由用户生成的,他们发送一大块数据,其中包含任意信息到进程1正在侦听的 endpoints )

现在我想将读取SQS(进程2)的进程放在Lambda函数中,以便写入队列的进程和从队列中读取的进程完全独立 . 问题是我不知道这是否可行 .

我知道Lambda函数是为响应事件而调用的,目前支持的事件是S3,SNS,SES,DynamoDB,Kinesis,Cognito,CloudWatch和Cloudformation,但是 NOT SQS .

我正在考虑使用SNS通知来调用Lambda函数,以便每次将消息推送到队列时,都会触发SNS通知并调用Lambda函数,但在使用它后,我意识到这是不可能的从SQS创建SNS通知,只能将SNS通知写入队列 .

现在我有点卡住,因为我不知道如何继续 . 由于AWS服务的当前限制,我觉得无法创建此基础结构 . 还有另一种方法可以做我想做的事情,还是我处于死胡同?

只是为了通过我做过的一些研究来扩展我的问题,这个github repo展示了如何从Lambda函数读取SQS队列 but lambda函数只有在从命令行触发时才起作用:

在自述文件中,作者提到了以下内容:

更新:Lambda现在支持SNS通知作为事件源,这使得这个hack完全不需要SNS通知 . 如果您喜欢使用Lambda函数处理SQS队列上的作业,您可能仍会发现它很有用 .

但我认为这并不能解决我的问题,SNS通知可以调用Lambda函数,但是当我在SQS队列中收到消息时,我看不出如何创建通知 .

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值