【问题标题】:What is an elegant way to create a "logic glue" of a serverless app什么是创建无服务器应用程序“逻辑胶水”的优雅方式
【发布时间】:2017-07-10 16:38:34
【问题描述】:

我需要实现以下逻辑:

  1. 包含多个(高级未知)页面的 PDF 已上传并保存到 S3
  2. 页面图像通过 lambda 函数从 pdf 中提取并保存到 S3。
  3. 每个图像都由一个 lambda 函数(同时)分析。结果保存到 S3 或发电机。
  4. 分析完所有图像后,运行最终的单个 lambda,将所有结果结合起来。

我的一个主要问题是如何在第 3 步的所有并发 lambda 表达式完成时触发。 实现这一目标的最佳、最优雅的方式是什么? 我有建议尝试使用 AWS step function,但似乎 Parallel 状态只能有固定数量,预先知道的分支。

【问题讨论】:

    标签: amazon-web-services aws-lambda serverless-framework aws-step-functions


    【解决方案1】:

    由于您已经在解决方案中使用了 Dynamodb,我可以想到一种可能的解决方案:

    Step 2: 
            Extract Images and store total_count in Dynamodb
    Step 3: 
           At the end of Lambda increment new column current_count
           if(current_count==total_count){ trigger Step 4 }
    

    【讨论】:

    • 我做过类似的事情。但它很快就会失控。有时触发器和状态遍布 S3、发电机 DB 和 lambda。没有一个流逻辑的中心位置。一定有更好的办法……
    • 您可以使用编排 lambda(它监听一堆主题,因此它知道每个 pdf 和每个页面的状态,然后在收到每个事件时计算出要做什么),这是一个更好的理解流逻辑的方法。但归根结底,您需要一个数据存储,这样您就可以检查每一页,这样您就知道整个 pdf 何时完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2023-03-20
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    相关资源
    最近更新 更多