Amazon web services 是否需要AWS SQS

Amazon web services 是否需要AWS SQS,amazon-web-services,amazon-dynamodb,aws-lambda,amazon-sqs,amazon-sns,Amazon Web Services,Amazon Dynamodb,Aws Lambda,Amazon Sqs,Amazon Sns,我正在构建一个服务,它将使用来自另一个源(服务)的数据。因此,我考虑使用以下管道:- 其他服务-->SNS主题-->SQS-->AWS Lambda-->Dynamo Db 所以,上面的流程所说的是另一个服务将数据推送到SNS主题,SQS将是该主题的订户。现在AWS Lambda将在这个SQS上有一个触发器,它将侦听SQS中的消息并将其推送到Dynamo Db。尽管这样做看起来没问题。但现在我在想我是否真的需要SQS。我可以避免使用它吗?AWS Lambda没有使用SQS,而是直接在SNS上使用

我正在构建一个服务,它将使用来自另一个源(服务)的数据。因此,我考虑使用以下管道:-

其他服务-->SNS主题-->SQS-->AWS Lambda-->Dynamo Db

所以,上面的流程所说的是另一个服务将数据推送到SNS主题,SQS将是该主题的订户。现在AWS Lambda将在这个SQS上有一个触发器,它将侦听SQS中的消息并将其推送到Dynamo Db。尽管这样做看起来没问题。但现在我在想我是否真的需要SQS。我可以避免使用它吗?AWS Lambda没有使用SQS,而是直接在SNS上使用触发器。如果我不使用AWS SQS,我只想到一个案例。如果AWS Dynamo DB出现故障,它将如何处理该场景?我认为只有SNS,我会在这段时间丢失一些消息,我的Dynamo Db处于失败状态,但如果我有SQS,那么这些消息将存储在SQS队列中

请让我知道我的理解是否正确


非常感谢您的帮助。

无法在评论中回答那么多问题,因此我将在这里尝试

您链接到的体系结构非常常见。两个最大的缺点是,即使无事可做,您也要为Lambda的使用付费,并且您的数据可能会延迟至少1分钟的轮询间隔。但这两件事对你的问题都不重要


SQS可以在DynamoDB发生故障时用作数据的临时存储。但如果失败了,你到底要怎么做?如果SQS失败并丢失您的消息怎么办?如果Lambda失败并且从未运行过您的代码怎么办?DynamoDB是一个托管服务,就像SQS和Lambda一样——亚马逊将非常努力地让它像其他服务一样运行。试图围绕每一个可能的失败场景进行架构将意味着您永远不会交付代码。我将重点介绍最简单的体系结构,并对您所购买的服务给予一些信任。

SQS不能触发Lambda,因为它是一种轮询体系结构。但是,您可以从SNS触发Lambda,因为它像Lambda一样是事件驱动的。有关更多信息,请参阅Lambda。谢谢您的回答。我认为从SQS没有直接的方法可以做到这一点。但是有一种我认为我们可以按照博客中提到的方式来做。除此之外,我的问题主要是关于我是否只使用SNS,不使用SQS,如果Dynamo Db出现故障,是否会有问题。非常感谢您的解释。那么,您有什么建议,我认为SQS本身似乎没有太多的用途,对吗?不,我看不到SQS在您的场景中的价值,因为它增加了额外的复杂性,但没有真正的好处。就像注释
尝试围绕每一个可能的失败场景进行架构将意味着您永远不会交付代码
:)+1.