微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从另一个分支访问AWS Step函数中并行块内的阶段

如何解决从另一个分支访问AWS Step函数中并行块内的阶段

enter image description here

如图所示,我已经创建了一个步进功能。现在,我需要在StepK之后执行StepX(然后ChoiceA流程将结束)。因此,基本上,StepX应该与StepY-> StepZ并行执行,但现在也要在StepK之后执行。但是我找不到访问并行块内部舞台的方法。“有没有解决的办法?

这是我的杰森-

{
  "StartAt": "DataPointsExtractor","States": {
    "DataPointsExtractor": {
      "Type": "Task","Resource": "arn:aws:lambda:*******","Next": "PathDecider"
    },"PathDecider": {
      "Type": "Choice","Choices": [
        {
          "Variable": "$.path_type","StringEquals": "ChoiceA","Next": "ChoiceA"
        },{
          "Variable": "$.path_type","StringEquals": "ChoiceB","Next": "ChoiceB"
        }
      ],"Default": "NoMatchesstate"
    },"ChoiceA": {
      "Type": "Task","Next": "StepK"
    },"StepK": {
      "Type": "Task","End": true
    },"ChoiceB": {
      "Type": "Task","Next": "ParallelStates"
    },"ParallelStates": {
      "Type": "Parallel","Branches": [
        {
          "StartAt": "StepX","States": {
            "StepX": {
              "Type": "Task","End": true
            }
          }
        },{
          "StartAt": "StepY","States": {
            "StepY": {
              "Type": "Task","Next": "StepZ"
            },"StepZ": {
              "Type": "Task","End": true
            }
          }
        }
      ],"NoMatchesstate": {
      "Type": "Fail","Cause": "No Matches!"
    }
  }
}

解决方法

您应该保持简单。由于ChoiceA和ChoiceB是独立的流程,因此它们不需要相交。 StepX可以使用两次(不过您必须使用其他名称)

enter image description here

定义:

{
  "StartAt": "DataPointsExtractor","States": {
    "DataPointsExtractor": {
      "Type": "Task","Resource": "arn:aws:lambda:*******","Next": "PathDecider"
    },"PathDecider": {
      "Type": "Choice","Choices": [
        {
          "Variable": "$.path_type","StringEquals": "ChoiceA","Next": "ChoiceA"
        },{
          "Variable": "$.path_type","StringEquals": "ChoiceB","Next": "ChoiceB"
        }
      ],"Default": "NoMatchesState"
    },"ChoiceA": {
      "Type": "Task","Next": "StepK"
    },"StepK": {
      "Type": "Task","Next": "StepX"
    },"StepX": {
      "Type": "Task","End": true
    },"ChoiceB": {
      "Type": "Task","Next": "ParallelStates"
    },"ParallelStates": {
      "Type": "Parallel","Branches": [
        {
          "StartAt": "StepX","States": {
            "StepX": {
              "Type": "Task","End": true
            }
          }
        },{
          "StartAt": "StepY","States": {
            "StepY": {
              "Type": "Task","Next": "StepZ"
            },"StepZ": {
              "Type": "Task","End": true
            }
          }
        }
      ],"NoMatchesState": {
      "Type": "Fail","Cause": "No Matches!"
    }
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。