如何在AWS Step Functions中实现手动审批?SWF 和 Step Functions 之间推荐的工作流引擎是什么?

vol*_*aur 5 workflow amazon-web-services amazon-swf aws-step-functions

Step Functions 现在支持回调功能以支持手动批准。我想知道任务令牌是如何生成的,以及我们是否可以传递自己的任务令牌字符串,以便我们不需要存储它来标记任务通过/失败。

此外,对于需要多个客户端交互才能进入下一个状态的工作流程,建议使用 Step Functions 或 SWF(及其信号)。

用例:我在工作流程中有多个步骤,如果计时器达到 6 个月,或者如果在这 6 个月内用户实际批准,则我们需要执行失败场景,那么工作流程需要执行到通过的场景。

Gab*_*mbe 6

当您使用任何支持集成的服务集成模式时,AWS Step Functions 会为您生成任务令牌.waitForTaskToken。您无法生成自己的令牌并将其作为集成的一部分传递。有关更多信息和示例,请参阅等待带有任务令牌的回调文档。

对于在进入下一个状态之前需要多个客户端交互的工作流程,我个人会使用 Step Functions 工作流程。如果客户端交互按照定义的顺序发生,那么我只需编写一系列.waitForTaskToken串行发生的样式服务集成,其中每个集成将允许下一个客户端交互发生(以适合您的方式)构建,例如执行 Lambda、将项目放入 SQS 队列等)。但是,如果客户端交互可以按任何顺序发生,并且您希望基本上暂停状态机直到它们全部完成,我会考虑将所有相关客户端交互的监视委托给一个活动,然后转换到活动的sendTaskSuccess如果活动没有在您希望的时间内全部完成,则等待活动通过调用或超时报告回来。

  • 每个 Step Functions 状态机在任何给定时间只能处于单个给定状态。其中一些状态是任务状态,工作发生在其中。这项工作是通过受支持的 API 集成调用另一个 AWS 服务来实现的,或者通过可以在任何地方发生的计算(通过轮询工作进程发现要完成的工作并在工作完成时向 Step Functions 报告)来实现,其概念是活动。希望这有助于了解为什么我以我的方式构建我的答案。 (2认同)