Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS中长期运行订阅后台服务的最佳位置_Amazon Web Services_Aws Lambda_Background Process_Aws Fargate - Fatal编程技术网

Amazon web services AWS中长期运行订阅后台服务的最佳位置

Amazon web services AWS中长期运行订阅后台服务的最佳位置,amazon-web-services,aws-lambda,background-process,aws-fargate,Amazon Web Services,Aws Lambda,Background Process,Aws Fargate,我目前正试图在AWS中建立一个利用EventSourcing和CQR的系统。我已经在命令端完成了所有工作,这是将事件存储到Aurora中。我将SqlEventStore作为我的EventSourcing存储,它有一个订阅机制,可以侦听新事件,然后适当地启动一个函数 到目前为止,它都是在Lambda中设置的,但是我不能在Lambda中订阅,因为它们并不总是运行,所以我的第一个想法是在Fargate和docker容器中运行这边。不过,根据我的阅读,这似乎需要由任务触发,而不是坐在订阅的容器中 所以我

我目前正试图在AWS中建立一个利用EventSourcing和CQR的系统。我已经在命令端完成了所有工作,这是将事件存储到Aurora中。我将SqlEventStore作为我的EventSourcing存储,它有一个订阅机制,可以侦听新事件,然后适当地启动一个函数

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


所以我的问题是,在AWS中,哪一个进程最好是长时间运行的,它只是坐在那里倾听事情的发生,而不是响应Lambda之类的产品。

您可以探索AWS glue python shell以获得长时间运行的服务器服务

所以我的问题是,在哪里最好有一个长期运行的过程 在AWS中,它只是坐着倾听事情的发生,而不是 对像Lambda这样的东西的刺激做出反应

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

这似乎需要通过一项任务来激发,而不是坐在办公室里 订阅上的容器

不,你可以用两种方式运行fargate

  • 作为长期运行的服务运行
  • 基于的消防服务(执行任务并终止)
AWS Fargate现在支持定期运行任务, 计划的基础和对CloudWatch事件的响应。这就够了 更容易启动和停止只需运行的容器服务 在某些时候

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

  • 如果您的任务应该运行很长时间,那么lambda不适合您,在lambda的情况下总是有超时
  • 如果您不想管理服务器,并且该进程应该运行很长时间,那么fargate适合您,因此您可以坐下来观看活动并聆听

为什么Lambda需要始终运行,即不是作为Lambda事件源的SQS队列,并且每当消息添加到队列时,它就充当Lambda运行的触发器?因为eventstore不是SQS。事件被存储到一个数据库中——我使用的第三方库有一个订阅机制,它将填充一个read modelAh gotcha,为了我自己的启发,您使用的第三方库是什么(假设它是公共的)?@AshamanKingpin当然,我对Fargate和将长期运行的流程放在docker容器中感到好奇。我将尝试一下,如果它也可以使用无服务器框架进行管理,那就太好了!原因是你希望运行很长一段时间,然后lambda肯定会失败,因为fo超时行为。是的,我知道lambda不会工作,因为上下文将消失,因此我正在寻找一个地方放置开放订阅。你也可以探索AWS的另一项服务,但我更喜欢fargate。与lambda相比,您对底层系统有更多的控制权。