当前位置: 首页 > 知识库问答 >
问题:

基于SQS队列的SNS如何触发Lambda函数

柯甫
2023-03-14

我正在使用Lambda函数将消息推送到SQS队列。消息放入SQS队列后,我需要触发其他Lambda函数来处理队列中的消息。

我认为我们可以使用SNS实现这一点。我是AWS服务新手,请建议在SNS的帮助下基于SQS队列消息触发Lambda函数的解决方案。

共有2个答案

干善
2023-03-14

我认为这将取决于处理信息的紧迫性。如果你想实时处理所有消息,那么就把它们发送到SNS,并为你的Lambda订阅该主题。

另一种情况是,您正在实时处理消息,并且由于某些依赖关系而经常发生任何故障,然后在这种情况下,将其发送给SQS,稍后通过Lambda轮询进行处理。

Lambda触发在所有这些情况下都很灵活,你可以直接订阅你的lambda到SNS主题来处理,你也可以安排你的lambda在cron基础上运行它(在轮询和处理SQS消息的情况下很有用)

陈业
2023-03-14

你不需要中间的SNS层。从你的第一个Lambda开始,做两件事

  1. 在SQS中放置消息并
  2. 触发将处理事件的Lambda

出于好奇,为什么需要把消息放到SQS。如果您的处理是微不足道的,那么您可以直接在第一个lambda函数本身中处理消息。

这样可以节省SQS和其他Lambda的成本

 类似资料:
  • 我是AWS Lambda函数的新手。我需要在AWS Lambeda上完成一些工作 众所周知,如果AWS Cloudwatch违反阈值,它会触发一个特定的警报,但它会一次性发出SNS通知,但假设如果cpu利用率在1小时内保持在70%以上,我们不会在Cloud watch警报中收到任何通知,下次我们将只有在cpu利用率回到低于阈值状态时才会收到通知。 所以被放在帮手,所以如果有人可以帮助我写一个lam

  • 当我在网上做研究时,似乎人们也在这个堆栈中使用SQS,SNS会将信息放在SQS上,然后SQS会调用Lambda。 我想我想理解的是在这方面对SQS的需求。这增加了什么价值?换句话说,直接从SNS调用我的Lambda会失去什么?

  • 我试图使用他们文档中提到的masstransit配置将SNS主题订阅到SQS队列。消息已发布,但不会出现在SQS队列中。SQS队列名称:“测试”,SNS主题名称:“kbbico手动替换”。

  • 我有一个AWS Lambda函数,它订阅一个DynamoDB流,并配置了一个SQS死信队列(DLQ)。我可以看到在管理控制台中配置了正确的队列。此外,我还注意为DLQ上的赋予函数权限。 订阅可以工作,但仍然会在调用错误时“挂起”,就像没有配置DLQ一样。例如,如果有一条消息导致未处理的异常,函数将继续重试该消息,直到将其从流中删除。我可以看到调用错误的数量增加了,函数的Cloudwatch仪表板中

  • 我有一个不断运行的lambda函数和一些动态创建的SQS队列。我需要一种允许lambda访问所有SQS队列的方法,以便可以使用这些动态创建的队列-我如何做到这一点? 目前,我使用的执行角色具有iam策略和单个队列ARN,但似乎无法创建多个执行角色。