首页 > 解决方案 > AWS 中长期运行的订阅后台服务的最佳位置

问题描述

我目前正在尝试在 AWS 中建立一个利用 EventSourcing 和 CQRS 的系统。我已经在命令端完成了所有工作,并将事件存储到 Aurora 中。我有 SqlEventStore 作为我的 EventSourcing 存储,它有一个订阅机制,它将监听新事件,然后适当地触发一个函数。

到目前为止,这一切都在 Lambda 中设置,但我不能在 Lambda 中订阅,因为它们并不总是在运行,所以我的第一个想法是在 Fargate 和 docker 容器中运行这一端。不过,根据我的阅读,这似乎需要由任务触发,而不是坐在订阅的容器中。

所以我的问题实际上是,在 AWS 中哪里最好有一个长时间运行的进程,它只是坐下来监听事情的发生,而不是响应来自 Lambda 之类的刺激。

标签: amazon-web-servicesaws-lambdabackground-processaws-fargate

解决方案


所以我的问题实际上是,在 AWS 中哪里最好有一个长时间运行的进程,它只是坐下来监听事情的发生,而不是响应来自 Lambda 之类的刺激。

我会建议使用Fargate或 EC2 类型的 ECS 容器,使用 Fargate 你不需要管理服务器,类似于 lambda 但更适合这种长时间运行的进程。

这似乎需要由任务触发,而不是坐在订阅的容器中。

不,您可以通过两种方式运行 fargate。

AWS Fargate 现在支持定期运行任务并响应 CloudWatch Events 的能力。这使得启动和停止只需要在特定时间运行的容器服务变得更加容易。

AWS 远门

在 AWS 中最好有一个长期运行的流程,它只是坐下来监听事情的发生,而不是响应来自 Lambda 之类的事件

  • 如果您的任务应该运行很长时间,那么 lambda 不适合您,在 lambda 的情况下总是会超时。
  • 如果您不想管理服务器,并且该进程应该运行很长时间,那么 fargate 适合您,那么坐下来听听就可以了。

推荐阅读