如何解决手动触发Lambda以从SQS读取
是否可以创建一个lambda,该lambda可以手动触发以从SQS中读取。
我有一个SQS队列,该队列不断接收消息,我想在需要时进行处理(而不是连续同步处理)。
我可以使用启动/停止lambda之类的东西吗,我在其中启动lambda,它从SQS活跃地消耗,而当我停止它时,它停止消耗
解决方法
通常,AWS Lambda函数被配置为从Amazon SQS队列“触发”。每当消息到达时,就会触发Lambda函数。
但是,您可以编写一个AWS Lambda函数以对队列本身调用ReceiveMessages()
,而不是配置触发器。然后,Lambda函数将负责在处理完消息后调用DeleteMessage()
。
您可以随时使用Invoke()
命令来调用Lambda函数。
您需要做出的唯一决定是Lambda函数是否应处理:
- 每次调用或 一个消息
- 每次调用或 ,每个消息一批(最多10条)
- 运行一个循环,以保留从队列中检索消息的功能,直到队列为空或直到Lambda函数超时(这可能会部分处理消息,因此这不是一个好主意) )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。