AWS Lambda 删除的 SQS 轮询器有哪些缺点?
What are the drawbacks of SQS poller which AWS Lambda removes?
我的架构如下所示:-
多个 SNS ->(AWS Lambda 或带轮询器的 SQS)??? -> 发电机 Db
所以,基本上多个 SNS 已经订阅了 AWS Lambda 或 SQS with Poller,并且那个东西将数据推送到 Dynamo Db。
但是这个?事情在两者之间做了很多消息转换。因此,现在对于这种情况,我可以将 AWS Lambda 或 SQS 与 Poller 结合使用。使用 AWS Lambda,我可以在 Lambda 函数中进行转换,使用 SQS with Poller,我可以在 Poller 中进行转换。使用 AWS Lambda,我看到一个问题,即代码会变得相当大,因为转换非常复杂(有很多规则),所以我正在考虑使用 SQS。但在最终确定 SQS 之前,我想知道 AWS Lambda 删除的 SQS 的缺点?
请帮忙。如果您需要更多信息,请告诉我。
你的问题不够详细,我会尝试解读你的需求。
选项 1:SQS 轮询
- 信息发送到 Amazon SNS 主题
- SQS 队列 订阅了 SNS 主题
- Amazon EC2 实例上的应用程序 运行ning 定期轮询 SQS 队列以请求消息
- 如果消息可用,消息中的数据将被转换并保存到 Amazon DynamoDB table
如果转换需要很长时间才能处理,则此方法很好。 EC2 实例的数量可以根据队列中的工作量进行扩展。 可以同时收到多条消息。这是一种传统的基于消息的方法。
选项 2:使用 Lambda
- 信息发送到 Amazon SNS 主题
- AWS Lambda 函数 订阅了 SNS 主题
- 当消息发送到 SNS 主题时,调用Lambda 函数
- Lambda 函数转换消息中的数据并将其保存到 Amazon DynamoDB table
AWS Lambda 函数执行时间限制为五分钟,因此这种方法只有在转换过程可以在该时间范围内完成时才有效。
不需要服务器,因为 Lambda 会自动 运行 并行执行多项功能。当没有工作要执行时,没有 Lambda 函数执行,也没有计算费用。
在这两个选项之间,使用 AWS Lambda 的效率和可扩展性要高得多,但它可能会因您的特定工作负载而异。
我们现在可以使用 SQS 消息来触发 AWS Lambda 函数。
28 JUN 2018: AWS Lambda Adds Amazon Simple Queue Service to Supported
Event Sources
此外,不再需要 运行 消息轮询服务或创建 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 控制台还支持:
更多详情:
https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/
https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html
我的架构如下所示:-
多个 SNS ->(AWS Lambda 或带轮询器的 SQS)??? -> 发电机 Db
所以,基本上多个 SNS 已经订阅了 AWS Lambda 或 SQS with Poller,并且那个东西将数据推送到 Dynamo Db。
但是这个?事情在两者之间做了很多消息转换。因此,现在对于这种情况,我可以将 AWS Lambda 或 SQS 与 Poller 结合使用。使用 AWS Lambda,我可以在 Lambda 函数中进行转换,使用 SQS with Poller,我可以在 Poller 中进行转换。使用 AWS Lambda,我看到一个问题,即代码会变得相当大,因为转换非常复杂(有很多规则),所以我正在考虑使用 SQS。但在最终确定 SQS 之前,我想知道 AWS Lambda 删除的 SQS 的缺点?
请帮忙。如果您需要更多信息,请告诉我。
你的问题不够详细,我会尝试解读你的需求。
选项 1:SQS 轮询
- 信息发送到 Amazon SNS 主题
- SQS 队列 订阅了 SNS 主题
- Amazon EC2 实例上的应用程序 运行ning 定期轮询 SQS 队列以请求消息
- 如果消息可用,消息中的数据将被转换并保存到 Amazon DynamoDB table
如果转换需要很长时间才能处理,则此方法很好。 EC2 实例的数量可以根据队列中的工作量进行扩展。 可以同时收到多条消息。这是一种传统的基于消息的方法。
选项 2:使用 Lambda
- 信息发送到 Amazon SNS 主题
- AWS Lambda 函数 订阅了 SNS 主题
- 当消息发送到 SNS 主题时,调用Lambda 函数
- Lambda 函数转换消息中的数据并将其保存到 Amazon DynamoDB table
AWS Lambda 函数执行时间限制为五分钟,因此这种方法只有在转换过程可以在该时间范围内完成时才有效。
不需要服务器,因为 Lambda 会自动 运行 并行执行多项功能。当没有工作要执行时,没有 Lambda 函数执行,也没有计算费用。
在这两个选项之间,使用 AWS Lambda 的效率和可扩展性要高得多,但它可能会因您的特定工作负载而异。
我们现在可以使用 SQS 消息来触发 AWS Lambda 函数。
28 JUN 2018: AWS Lambda Adds Amazon Simple Queue Service to Supported Event Sources
此外,不再需要 运行 消息轮询服务或创建 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 控制台还支持:
更多详情:
https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/
https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html