【问题标题】:Invoke AWS Lambda function when multiple Lambda function is done多个 Lambda 函数完成时调用 AWS Lambda 函数
【发布时间】:2018-07-14 20:06:37
【问题描述】:

当多个 lambda 函数成功完成时,调用 aws lambda 函数的最佳方式是什么?

例如,LambdaA 应该在 LambdaB1、LambdaB2、... LambdaBn 成功返回成功时运行。另外,最后一个 LambdaB 函数不能保证最后完成......

【问题讨论】:

  • 您应该查看 AWS Step Functions,您可以分配逻辑以从一个 lambda 获取输出以使用输出启动另一个。您可以根据 Lambda 输出分配等待和 if 语句。

标签: amazon-web-services aws-lambda


【解决方案1】:

要回答您的具体问题,您需要在 Lambda 函数中使用 JavaScript Promises(我假设您使用的是 NodeJS)。当所有的承诺都实现后,你就可以继续了。

但是,我不建议这样做,因为您的初始 Lambda 函数处于空闲状态,并且正在计费,等待其他函数的响应。

IMO,实现这种并行执行的最佳方式是使用AWS Step Functions。在这里您可以绘制出事件的顺序,并且您需要使用Parallel States 来确保在继续之前完成所有任务。

【讨论】:

    最近更新 更多