【问题标题】:Using AWS Lambda to periodically monitor state of a remote resource使用 AWS Lambda 定期监控远程资源的状态
【发布时间】:2019-07-10 20:58:39
【问题描述】:

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

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

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

有人会对这种方法发表评论,如果有的话,可能会提出替代方案?

【问题讨论】:

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


    【解决方案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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多