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

工作流没有终止状态

如何解决工作流没有终止状态

我正在使用 AWS Step Function 创建一个工作流程,我首先检查数据库中是否存在记录,然后根据记录有两个分支,每个分支都以成功或失败状态结束,但我仍然得到Workflow has no end state 错误。 以下是工作流的 JSON

{
  "Comment": "A demo state machine","StartAt": "FindCategory","States": {
    "FindCategory": {
      "Type": "Task","Resource": "arn:aws:lambda:us-east-1:xxxxxxx:function:xxxxxx","Next": "Exists?"
    },"Exists?": {
      "Type": "Choice","Choices": [
        {
          "Variable": "$.exists","BooleanEquals": true,"Next": "Yes"
        },{
          "Variable": "$.exists","BooleanEquals": false,"Next": "No"
        }
      ]
    },"Yes": {
      "Type": "Pass","Next": "GetQuestions"
    },"GetQuestions": {
      "Type": "Task","Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxxxxxx","Next": "ReplyWithPolls"
    },"ReplyWithPolls": {
      "Type": "Map","MaxConcurrency": 2,"Iterator": {
        "StartAt": "SendPoll","States": {
          "SendPoll": {
            "Type": "Task","Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxxxx:xxxxxxx","Next": "SendPoll"
          }
        }
      },"Next": "Succeed"
    },"No": {
      "Type": "Pass","Next": "FailState"
    },"Succeed": {
      "Type": "Succeed"
    },"FailState": {
      "Type": "Fail","Error": "404","Cause": "Category not found"
    }
  }
}

解决方法

我认为问题在于您的 SendPoll 状态会导致无限循环。它将自己称为下一个。相反,迭代器中的状态应该是终止状态。

"Next" 状态中的 "SendPoll" 字段替换为 "End" 字段。

          "SendPoll": {
            "Type": "Task","Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxxxx:xxxxxxx","End": true
          }

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