如何解决工作流没有终止状态
我正在使用 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 举报,一经查实,本站将立刻删除。