Lambda函数调用另一个Lambda函数

时间:2016-07-09 16:30:56

标签: aws-sdk aws-lambda

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

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。您可以使用AWS SDK(包含在Lambda运行时环境中)来调用其他Lambda函数,就像在其他任何地方运行的代码一样。

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

答案 1 :(得分:1)

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

要做到这一点,你需要两个lambda - 一个'S3阅读器'和一个'S3文件解析器'。

为了触发'S3文件解析器'lambda,你有很多不同的选择。这是两个:

  1. 使用SNS主题触发它。 (Here是一篇关于如何做到这一点的文章)。如果你有一个很长的文件列表,这可能是一个问题,因为你很可能会超过可以并行运行的lambda实例的数量。
  2. 通过AWS SDK调用它来触发它。 (请参阅article'Leon'发表评论以了解如何执行此操作。)您需要考虑的是,一长串文件可能会导致“S3 reader”lambda控制调用超时lambda有5分钟的运行时限制。
  3. 根据实际使用情况,另一个可能的解决方案是只有一个lambda在文件上传到S3存储桶时被触发,并让它决定是否应该解析它,然后在需要时解析它。有关如何执行此操作的详细信息,请参阅此article和此tutorial