0

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

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

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

4

2 回答 2

1

在这里使用 pub/sub 服务(例如 mqtt)会很有用。

  1. 在生成新执行的 lambda 中生成 UUID。
  2. 将 UUID 传递给新的执行并将其返回给活动工作者。
  3. 新的执行完成后将 UUID 和结果写入队列。
  4. 活动工作者从队列中读取并使用 UUID 来查找正确的消息。
于 2017-04-13T16:13:09.087 回答
0

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

于 2017-08-20T14:45:42.620 回答