3

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

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

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

4

2 回答 2

2

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

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

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

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

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

AWS 远门

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

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

您可以探索用于长时间运行的服务器服务的 aws 胶水 python shell。

于 2019-10-14T18:29:02.493 回答