Aws 步进函数 - 从失败的步进函数活动中恢复,而不是开始新的执行
Posted
技术标签:
【中文标题】Aws 步进函数 - 从失败的步进函数活动中恢复,而不是开始新的执行【英文标题】:Aws step functions - Resume from failed step function activity instead of starting a new execution 【发布时间】:2021-12-23 22:36:07 【问题描述】:我创建了一个包含 4 个不同活动的步进函数,这些活动一个接一个地运行,并且还集成以从 Java 应用程序触发此步进函数。流程看起来像这样。
开始 -> Activity1 -> Activity2 -> Activity3 -> Activity4 -> 停止
当某个活动(比如 Activity2)执行失败时,该执行被标记为失败。
现在,是否有办法从之前失败的 Activity(Activity2) 恢复失败的执行,而不是开始新的执行?
我完成了可以通过AWSStepFunctions
进行的操作,但似乎没有一个可以解决这个要求。
https://docs.aws.amazon.com/step-functions/latest/apireference/API_Operations.html
【问题讨论】:
【参考方案1】:使用 AWS Step Functions 进行错误处理的公共文档包含有关 fallback states 的部分。这允许您指定处理任务失败的逻辑,并根据观察到的错误进入另一个状态。
以下 Catch 字段根据从相关任务状态观察到的错误重定向执行流程:
"Catch": [
"ErrorEquals": [ "java.lang.Exception" ],
"ResultPath": "$.error-info",
"Next": "RecoveryState"
,
"ErrorEquals": [ "States.ALL" ],
"Next": "EndState"
]
【讨论】:
我不是在寻找替代方案或错误处理。如果 Activity2 使用的服务方法引发了一些运行时错误并且完整执行失败,我想修复服务方法的问题并从 Activity2 重新运行执行以避免再次运行 Activity1。【参考方案2】:我试图实现同样的目标,发现此链接很有帮助。 https://aws.amazon.com/blogs/compute/resume-aws-step-functions-from-any-state/
【讨论】:
以上是关于Aws 步进函数 - 从失败的步进函数活动中恢复,而不是开始新的执行的主要内容,如果未能解决你的问题,请参考以下文章
AWS Step Functions:如何访问在 catch 块中生成异常的状态的输入?