我需要在AWS的后端中实现以下功能: -API端点,允许用户在远程系统中启动特定的长期运行的“进程” -应该定期(每隔几秒)监视此远程系统中的进程状态,并在状态==完成时触发操作(远程系统不支持发送/触发通知或回调)
我们主要使用lambda函数,因此我正在考虑通过以下方式进行处理: -由用户触发的端点将调用远程系统以启动该过程,将记录存储在内部DB中并生成一条消息到SQS(传递延迟为X秒) -会有第二个lambda从SQS读取消息并检查此远程系统中进程的状态。当状态==完成时,触发一个动作,当状态==完成时,向SQS生成另一条消息,该消息将在X秒钟的延迟后再次提取相同的lambda并重复检查等等。
我想知道是否有更好的解决方案/工具来在AWS中实施这种监视/通知模式,因为我对AWS提供的所有服务并不熟悉。
有人会对此方法发表评论吗,如果有的话,也许会建议另一种方法?
答案 0 :(得分:1)
看看AWS Step Functions,我认为它最适合您的用例。
您需要做的就是在StepFunctions中启动StateMachine的执行,而不是生成SQS消息。
以下教程介绍了带有计数器的迭代器循环。但是您可以使用相同的逻辑来检查状态并保持循环,直到状态==完成
https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-create-iterate-pattern-section.html
另一种有用的资源,我认为它非常接近您的用例 https://docs.aws.amazon.com/step-functions/latest/dg/sample-project-job-poller.html