Amazon web services 它是AWS中处理事件的正确设计图吗?
我对AWS不是很有经验,所以我想检查一下我的设计图。处理检验事件的工作流可以按以下方式进行: 属于某个作业的检验事件应由Amazon web services 它是AWS中处理事件的正确设计图吗?,amazon-web-services,aws-lambda,message-queue,Amazon Web Services,Aws Lambda,Message Queue,我对AWS不是很有经验,所以我想检查一下我的设计图。处理检验事件的工作流可以按以下方式进行: 属于某个作业的检验事件应由EventHandlers分别为每个作业处理。然后将处理结果持久化到S3中。完成特定作业的处理和持久化后,EventConsumer应根据处理完成消息从S3检索结果 因此,为了将事件定向到EventHandler,我展示了SNS主题InspectionEvent 由于处理特定作业的事件需要大量资源,因此我们考虑为每个作业创建Lambda 如何为此Lambda创建触发器?在图中,
EventHandlers
分别为每个作业处理。然后将处理结果持久化到S3中。完成特定作业的处理和持久化后,EventConsumer
应根据处理完成消息从S3检索结果
因此,为了将事件定向到EventHandler,我展示了SNS主题InspectionEvent
由于处理特定作业的事件需要大量资源,因此我们考虑为每个作业创建Lambda
如何为此Lambda创建触发器?在图中,我展示了DynamoDB,如果出现新作业的检查事件,它可能会触发EventHandler
Lambda。然后EventHandler
从DynamoDB检索特定作业的事件,并在完成后将完成事件发布到另一个SNS主题–eventprocessingeds
。EventConsumer
获取特定作业的消息,并从S3检索结果
图像已附加。这个设计有意义吗?还有什么建议
首先,我建议使用SQS而不是SNS来启动图中的作业触发循环和图底部附近的事件消费者广场 AWS Lambda可以通过事件从SQS队列、S3更改或dynamodb中的更改中读取事件,因此我建议您使用它而不是SNS,SNS通常用于移动推送通知,或者需要向组发送多对多消息/通知的情况。在这种情况下,SQS是您想要的—有两个原因: 它对于生产者/消费者模式非常有效
- 您可以将弹性Beanstalk消费者应用程序连接到SQS队列,并根据在服务器上执行的消费者的队列大小自动扩展
- AWS Lambda可以直接从SQS队列读取事件,因此在无服务器作业处理队列中,异步运行Lambda函数的数量将随着队列吞吐量的增加而增加李>
- 由于这种情况正是SQS设计的目的,因此它具有许多功能,您可以根据需要定制解决方案李>
- (发电机B)
- (S3)
- (SQS)
祝你好运,希望这有帮助。为什么你决定使用SNS而不是SQS?请查看。SNS允许推送到其他订户。坦白说,这是一个相当混乱的图表。事件使用者和事件处理程序是同义词。如果你要将其分解为多个服务,你应该定义目标。例如:MSVC A在执行某些操作时会发布。MSVC B将由a等的特定操作触发,因此…我希望利用Step功能来管理/协调事务。您可以利用服务集成来创建一个步骤,该步骤将向SNS发送消息,处理lambda,甚至在发生错误时处理错误。这也不需要DDB