如何解决AWS Step Function - 动态选择要并行运行的分支
我正在研究一种解决方案,其中假设状态函数获取要完成的所需函数(基于输入),然后需要并行触发这些函数,以便我最终获得统一的输出。这可以说明如下 -
获取基于输入的需求后,下一个状态可以是以下状态的任意组合,但它们确实需要并行运行,以便我知道所有必需的任务都已完成。我不想保留一堆选择或决策者,因为将来所需步骤的数量可能会增加。是否可以决定哪些分支需要并行运行并运行它们。
解决方法
我们需要在每个分支中进行选择。
{
"StartAt":"Build Decider Step Output","States":{
"Build Decider Step Output":{
"Type":"Pass","Result":{
"firstReq":true,"secondReq":true,"thridReq":false
},"ResultPath":"$.decider","Next":"my-parallel"
},"my-parallel":{
"Type":"Parallel","End":true,"Branches":[
{
"StartAt":"should we run first step?","States":{
"should we run first step?":{
"Type":"Choice","Choices":[
{
"Variable":"$.decider.firstReq","BooleanEquals":true,"Next":"First Requirement"
}
],"Default":"First Req Skipped"
},"First Req Skipped":{
"Type":"Pass","End":true
},"First Requirement":{
"Type":"Pass","End":true
}
}
},{
"StartAt":"should we run second step?","States":{
"should we run second step?":{
"Type":"Choice","Choices":[
{
"Variable":"$.decider.secondReq","Next":"Second Requirement"
}
],"Default":"Second Req Skipped"
},"Second Req Skipped":{
"Type":"Pass","Second Requirement":{
"Type":"Pass",{
"StartAt":"should we run thrid step?","States":{
"should we run thrid step?":{
"Type":"Choice","Choices":[
{
"Variable":"$.decider.thridReq","Next":"Third Requirement"
}
],"Default":"Third Req Skipped"
},"Third Req Skipped":{
"Type":"Pass","Third Requirement":{
"Type":"Pass","End":true
}
}
}
]
}
}
}
我在第一步输出中模拟了这个 json
{
"firstReq":true,"thridReq":false
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。