【问题标题】:Lambda function calling another Lambda functionLambda 函数调用另一个 Lambda 函数
【发布时间】:2016-07-14 00:11:07
【问题描述】:

我想创建一个通过 S3 文件运行的 Lambda 函数,并在需要时触发其他 Lambda 函数以并行解析文件。 这可能吗?

【问题讨论】:

标签: aws-sdk aws-lambda


【解决方案1】:

是的,这是可能的。您将使用 AWS 开发工具包(包含在您的 Lambda 运行时环境中)来调用其他 Lambda 函数,就像您在其他任何地方运行的代码中所做的那样。

如果您想要更详细的答案,您必须指定编写 Lambda 函数所用的语言。

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您需要一个遍历 S3 存储桶中文件列表的 lambda。某些条件将决定是否应该解析文件。对于应该解析的文件,您需要另一个“文件解析” lambda 来解析这些文件。

    为此,您需要两个 lambda - 一个“S3 阅读器”和一个“S3 文件解析器”。

    要触发“S3 文件解析器”lambda,您有许多不同的选项。这里有两个:

    1. 使用 SNS 主题触发它。 (Here 是一篇关于如何做到这一点的文章)。如果您的文件列表很长,这可能是个问题,因为您很可能会超过可以并行运行的 lambda 实例的数量。
    2. 通过使用 AWS 开发工具包调用它来触发它。 (请参阅作为评论发布的article'Leon' 以了解如何执行此操作。)您需要在这里考虑的是,一长串文件可能会导致控制调用超时的 'S3 reader' lambda,因为存在lambda 的 5 分钟运行时限制。

    根据实际用例,另一种可能的解决方案是只设置一个 lambda,当文件上传到 S3 存储桶时触发它,让它决定是否应该解析它,然后在需要时解析它。有关如何执行此操作的更多信息,请参阅此 article 和此 tutorial

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2018-10-26
      相关资源
      最近更新 更多