如何使用AWS Step Functions将TaskSuccess发送到正确的活动?

时间:2017-04-04 18:12:56

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

所以,我正在研究状态机。它可以同时运行多达20或30次执行,具有不同的参数。

其中一个状态是一个活动工作者(需要等待来自其中一个状态的另一个步骤函数执行的一些输入通过lambda函数,因为你不能直接从状态机启动一个新的执行)。

我知道如何为活动发送“任务成功”。但是我如何确保它被发送到正确的执行?

2 个答案:

答案 0 :(得分:1)

使用诸如mqtt之类的pub / sub服务在这里很有用。

  1. 在lambda中生成一个生成新执行的UUID。
  2. 将UUID传递给新执行并将其返回给活动工作者。
  3. 新的执行在完成后将UUID和结果写入队列。
  4. 活动工作人员从队列中读取并使用UUID查找正确的消息。

答案 1 :(得分:0)

根据状态机的设计,当您的活动创建新的StepFunction执行时,您还可以将当前活动的taskToken作为输入参数传递。然后,子执行中的最后一个状态可以使用传入的taskToken为父执行中的状态调用Task Success,并返回任何结果数据作为该状态的结果。 (不要忘记最后一个状态也必须自己调用Task Success。)