如何在 AWS Step 函数中实施手动批准 SWF 和 Step 函数之间推荐的工作流引擎是什么?

问题描述

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

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

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

解决方法

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

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