使用AWS Lambda定期监视远程资源的状态

时间:2019-07-10 12:32:07

标签: amazon-web-services aws-lambda amazon-sqs

我需要在AWS的后端中实现以下功能: -API端点,允许用户在远程系统中启动特定的长期运行的“进程” -应该定期(每隔几秒)监视此远程系统中的进程状态,并在状态==完成时触发操作(远程系统不支持发送/触发通知或回调)

我们主要使用lambda函数,因此我正在考虑通过以下方式进行处理: -由用户触发的端点将调用远程系统以启动该过程,将记录存储在内部DB中并生成一条消息到SQS(传递延迟为X秒) -会有第二个lambda从SQS读取消息并检查此远程系统中进程的状态。当状态==完成时,触发一个动作,当状态==完成时,向SQS生成另一条消息,该消息将在X秒钟的延迟后再次提取相同的lambda并重复检查等等。

我想知道是否有更好的解决方案/工具来在AWS中实施这种监视/通知模式,因为我对AWS提供的所有服务并不熟悉。

有人会对此方法发表评论吗,如果有的话,也许会建议另一种方法?

1 个答案:

答案 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