【发布时间】:2023-02-10 07:09:08
【问题描述】:
在 AWS Step Functions 中,我有一个具有三个状态的简单状态机。 StateA 和 StateB 处于“并行”状态。 StateC 在“并行”状态之后。
默认情况下,StateC 在 StateA 和 StateB 都完成时执行。但是,我的要求是在其中一个并行分支完成时运行 StateC,而无需等待另一个分支。
以下是状态机的 ASL 代码。帐号用 * 屏蔽
{
"Comment": "Parellel state test",
"StartAt": "Parallel",
"States": {
"Parallel": {
"Type": "Parallel",
"Branches": [
{
"StartAt": "StateA",
"States": {
"StateA": {
"Type": "Pass",
"End": true
}
}
},
{
"StartAt": "StateB",
"States": {
"StateB": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke.waitForTaskToken",
"Parameters": {
"Payload": {
"token.$": "$$.Task.Token"
},
"FunctionName": "arn:aws:lambda:eu-west-1:************:function:rere-sleep-five-seconds:$LATEST"
},
"End": true
}
}
}
],
"Next": "StateC"
},
"StateC": {
"Type": "Pass",
"End": true
}
}
}
从下图中可以看出。由于 StateB 的失败,StateC 永远不会执行。当任一并行分支完成时,如何配置 StateC 运行? Click to view State Machine execution
一些问题描述了类似的情况,但是,没有一个问题可以回答这个特定的要求。你能帮忙吗?
【问题讨论】:
标签: amazon-web-services aws-step-functions