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

How to implement manual approval in AWS Step Functions? What's the recommended workflow engine between SWF and Step Functions?

Step Functions 现在支持回调功能以支持手动审批。我想知道任务令牌是如何生成的,以及我们是否可以传递自己的任务令牌字符串,这样我们就不需要存储它来标记任务 passed/failed.

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

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

AWS Step Functions 在您使用任何支持 .waitForTaskToken 集成的服务集成模式时为您生成任务令牌。您无法生成自己的令牌并将其作为集成的一部分传递。有关详细信息和示例,请参阅 Wait for a Callback with Task token 文档。

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