使用阶跃函数来触发lambda,一旦它们完成执行

时间:2018-08-21 18:37:23

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

我有两个lambda。一旦在SQS中填充了消息,就会触发LambdaA。我希望Lambda A执行完毕后才能执行。我怎样才能做到这一点? Lambda A将同时运行多个调用,这有什么区别吗?

2 个答案:

答案 0 :(得分:1)

为此创建了步骤功能。您可以将数据从一个Lambda传输到另一个Lambda,这样您就可以将上一个Lambda正在处理的内容发送到下一个Lambda。

答案 1 :(得分:0)

为此,您需要直接从lambda触发Step Function。据我所知,您不能直接从SQS触发步进功能。

所以

  1. 如果Lambda A是由SQS以外的其他方式触发的,请触发您的“步进功能”。然后它将根据您的设置运行Lambda A和Lambda B。

  2. 如果Lambda由SQS触发,则您将创建由SQS触发的第三个Lambda(Lambda 0),其唯一目的是依次触发您的步进功能(先运行Lambda A,然后运行Lambda B)。直接从Lambda A触发Lambda B(在这种情况下,“步进功能”毫无意义,您应该使用SQS / SNS)。

关于此的注释;步骤功能无法开箱即用的一件事是,例如,仅完成 all 的Lambda A调用后才执行LambdaB。它将在每次执行的基础上执行。