Aws lambda AWS Lambda删除的SQS轮询器有哪些缺点?

Aws lambda AWS Lambda删除的SQS轮询器有哪些缺点?,aws-lambda,amazon-sqs,Aws Lambda,Amazon Sqs,我的架构如下所示:- 多个SNS->(AWS Lambda或带有轮询器的SQS)???->发电机分贝 所以,基本上有多个SNS已经使用Poller订阅了AWS Lambda或SQS,这会将数据推送到Dynamo Db 但是这个呢?在这两者之间做了大量的信息转换。所以,现在对于这种情况,我可以使用AWS Lambda或SQS和Poller。使用AWS Lambda,我可以在Lambda函数中进行转换,使用带有Poller的SQS,我可以在Poller中进行转换。在AWS Lambda中,我看到一个

我的架构如下所示:-

多个SNS->(AWS Lambda或带有轮询器的SQS)???->发电机分贝

所以,基本上有多个SNS已经使用Poller订阅了AWS Lambda或SQS,这会将数据推送到Dynamo Db

但是这个呢?在这两者之间做了大量的信息转换。所以,现在对于这种情况,我可以使用AWS Lambda或SQS和Poller。使用AWS Lambda,我可以在Lambda函数中进行转换,使用带有Poller的SQS,我可以在Poller中进行转换。在AWS Lambda中,我看到一个问题,即代码会变得非常大,因为转换非常复杂(有很多规则),所以我考虑使用SQS。但在最终确定SQS之前,我想知道AWS Lambda删除的SQS的缺点是什么


请帮忙。如果您需要更多信息,请告诉我。

您的问题没有太多细节,因此我将尝试解释您的需求

选项1:SQS轮询

  • 信息被发送到亚马逊SNS主题
  • SNS主题订阅了一个SQS队列
  • 在Amazon EC2实例上运行的应用程序定期轮询SQS队列以请求消息
  • 如果消息可用,则消息中的数据将被转换并保存到Amazon DynamoDB表中
如果转换需要很长时间来处理,那么这种方法是很好的。EC2实例的数量可以根据队列中的工作量进行缩放可以同时接收多条消息。这是一种传统的基于消息的方法

选项2:使用Lambda

  • 信息被发送到亚马逊SNS主题
  • SNS主题订阅了AWS Lambda函数
  • 当向SNS主题发送消息时,调用Lambda函数
  • Lambda函数转换消息中的数据并将其保存到Amazon DynamoDB表中
AWS Lambda函数的执行时间限制为5分钟,因此只有在转换过程能够在该时间范围内完成时,这种方法才会起作用

不需要服务器,因为Lambda将自动并行运行多个功能。当不执行任何工作时,不会执行Lambda函数,也不会产生计算费用


在这两个选项中,使用AWS Lambda效率更高,可扩展性更强,但可能会因您的具体工作负载而异。

我们现在可以使用SQS消息触发AWS Lambda功能

2018年6月28日:AWS Lambda将Amazon简单队列服务添加到受支持的 事件源

此外,不再需要运行消息轮询服务或创建SQS到SNS的映射。 AWS无服务器模型支持以下新事件源:

Type: SQS
 PropertiesProperties:
  QueueQueue: arn:aws:sqs:us-west-2:213455678901:test-queue arn:aws:sqs:us-west-2:123791293
  BatchSize: 10
AWS控制台还支持:

更多详细信息:


谢谢您的回答。那么aws lambda代码的大小呢?我关心的是我放在aws lambda中的代码的大小,因为它是一个文件。在设计方面会好吗?我不知道如何回答这个问题。您编写的代码完全由您自己控制,并且在两个选项中都非常相似