繁体   English   中英

如何触发基于sqs队列的事件?

[英]How to trigger events based of sqs queue?

我正在创建一个 sqs 队列(下面的示例),我知道 sqs 队列可以直接与 lambda 集成,这样一来消息,lambda 就可以处理触发器。 我假设 lambda 正在轮询此队列,以查看是否有任何消息。 这是否意味着 lambda 每分钟(或类似的东西)都在运行,而且在收费方面也很昂贵? sqs 可以添加延迟来调用 lambda 吗? 还是有更好的设置,它允许说触发 lambda 这样它就不会为每条传入的消息触发 lambda 但可能一次或某个时间间隔为每条消息触发?

AWSTemplateFormatVersion: '2010-09-09'
Description: Template to create a queue

Resources:
      
 queue: 
    Type: AWS::SQS::Queue
    Properties: 
      QueueName: 'myQueue'  
      FifoQueue: true
          
Outputs:
  QueueURL:
    Description: Queue URL
    Value: !Ref queue

您假设 lambda 正在轮询队列是正确的; 但是,lambda 本身并未运行以检查消息。 Lambda 使用与 lambda 稍微分开工作的事件源映射来轮询事件源,在您的情况下为 SQS。

至于您的 lambda 处理了多少消息, 请参阅“批处理行为”部分以获取更多详细信息,但您可以设置等待时间(批处理窗口)和 lambda 一次处理的消息数限制(批处理大小)。 默认情况下,lambda 等待队列中的 10 条消息或等待 5 分钟,以先到者为准。 设置事件源时,可以更改这些值。 查看亚马逊的本指南,了解有关将 Lambda 与 Amazon SQS 结合使用的更详细说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM