如何恢复暂停的Step Function状态机?

时间:2018-05-30 21:59:02

标签: aws-step-functions

我已经看过一些关于如何使用令牌恢复暂停的步骤功能状态机的幻灯片。我查看了API文档以了解如何自己完成此操作但不能。用于查找暂停状态机的令牌究竟是如何确定的,以及用于继续使用哪个API?

1 个答案:

答案 0 :(得分:0)

我能想到的最接近的事情是活动(https://docs.aws.amazon.com/step-functions/latest/dg/concepts-activities.html),但这需要创建一个工人。随后接收的活动令牌(GetActivityTask)可用于稍后恢复状态机(SendTaskSuccessSendTaskFailure)。

但是我可以想办法解决这个问题,而不需要额外的工作人员(所以你不需要创建一些总是工作的任务):创建并行状态,它有两个任务:

  1. 将用于暂停状态机的活动任务
  2. 具有lambda函数的任务,该函数从GetActivityTask获取令牌并将其发送到某处(例如 - 启动外部进程,稍后将恢复状态机)
  3. 状态机看起来像这样:

    enter image description here

    WaitForResume将成为活动任务,PullToken将调用GetActivityTask。但请记住,在PullToken内,您可以为该状态机的任何执行获取令牌,而不是实际执行。 PullToken还应该配置重试策略以解决竞争条件的潜在问题。请注意,这只是优化以降低成本 - 直接的方法是拥有额外的活动工作者。