AWS Lambda传达简单信息/状态的最佳方式

时间:2017-09-29 14:20:57

标签: aws-lambda

我有一个应用程序,其中一个初始lambda将生成几个异步lambdas,其中一些lambda可能会产生自己的异步lambdas,依此类推(尽管有一个生成计数器来防止离家出走)。 Lambdas当前都写入DynamoDB表。我想知道最后一个完成的时间,以便启动一些不同的过程。

我一般可以想到几种方式:

  • 将特定字段写入数据库,每个lambda检查它是否是最后一个
  • SQS
  • SWF(步骤功能/状态机)

我想知道最简单的方法,和/或“最佳”或规范方式,如果有的话。还想避免使用SQS(虽然我还是要尝试使用SWF,只是因为听起来很酷)。

2 个答案:

答案 0 :(得分:1)

这是AWS步骤功能的一个很好的用例。

Parallel状态正是您所需要的。

  

并行状态(" Type":" Parallel")可用于在状态机中创建并行执行分支。

答案 1 :(得分:1)

您的方案最适合AWS Step Functions,您可以在其中为Lambda步骤定义Parallel state,并在上次执行时触发最后一步,这将启动不同的过程。然而,这将简化状态机,但会为各个州带来额外的成本。

另一种方法是使用DynamoDB Atomic Counters来跟踪每次执行,以便在上次执行后,附加到Stream的Lambda函数可以识别并启动不同的进程。