Ошибки языка в штатах Amazon - PullRequest
0 голосов
/ 13 января 2020

Я создаю AWS Конечный автомат - получаю ошибку:

Error

Вот сайт, на который также ссылается ошибка: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html

Я часами прочесывал код своего автомата и не могу понять, что с ним не так. Раньше, когда у меня были ошибки, они появлялись в GUI - но для этого просто говорится, что есть ошибка без указания того, откуда произошла ошибка.

Вот мой конечный автомат:

State Machine

Вот код моего конечного автомата:

{
   "StartAt":"Pass",
   "States":{
      "Pass":{
         "Type":"Pass",
         "Next":"Transform 1"
      },
      "Send Notification 1":{
         "Type":"Task",
         "Resource":"arn:aws:states:::lambda:invoke",
         "Parameters":{
            "FunctionName":"arn:aws:lambda:us-east-1:432700302163:function:CheckInterviewStatus:$LATEST",
            "Payload":{
               "Input.$":"$"
            }
         },
         "Catch":[
            {
               "ErrorEquals":[
                  "States.ALL"
               ],
               "Next":"CatchAllFallback"
            }
         ],
         "Next":"Interview Completed 1"
      },
      "Send Notification 2":{
         "Type":"Task",
         "Resource":"arn:aws:states:::lambda:invoke",
         "Parameters":{
            "FunctionName":"arn:aws:lambda:us-east-1:432700302163:function:CheckInterviewStatus:$LATEST",
            "Payload":{
               "Input.$":"$.Payload"
            }
         },
         "Catch":[
            {
               "ErrorEquals":[
                  "States.ALL"
               ],
               "Next":"CatchAllFallback"
            }
         ],
         "Next":"Interview Completed 2"
      },
      "CatchAllFallback":{
         "Type":"Pass",
         "Result":"This is a fallback from any error code",
         "End":false
      },
      "Send Notification 3":{
         "Type":"Task",
         "Resource":"arn:aws:states:::lambda:invoke",
         "Parameters":{
            "FunctionName":"arn:aws:lambda:us-east-1:432700302163:function:CheckInterviewStatus:$LATEST",
            "Payload":{
               "Input.$":"$.Payload"
            }
         },
         "Catch":[
            {
               "ErrorEquals":[
                  "States.ALL"
               ],
               "Next":"CatchAllFallback"
            }
         ],
         "Next":"Interview Completed 3"
      },
      "CatchAllFallback":{
         "Type":"Pass",
         "Result":"This is a fallback from any error code",
         "End":false
      },
      "Send Notification 4":{
         "Type":"Task",
         "Resource":"arn:aws:states:::lambda:invoke",
         "Parameters":{
            "FunctionName":"arn:aws:lambda:us-east-1:432700302163:function:CheckInterviewStatus:$LATEST",
            "Payload":{
               "Input.$":"$.Payload"
            }
         },
         "Catch":[
            {
               "ErrorEquals":[
                  "States.ALL"
               ],
               "Next":"CatchAllFallback"
            }
         ],
         "Next":"Interview Completed 4"
      },
      "CatchAllFallback":{
         "Type":"Pass",
         "Result":"This is a fallback from any error code",
         "End":false
      },
      "CatchAllFallback":{
         "Type":"Pass",
         "Result":"This is a fallback from any error code",
         "End":false
      },
      "Interview Completed 1":{
         "Type":"Choice",
         "Choices":[
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":true,
               "Next":"Yes 1"
            },
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":false,
               "Next":"No 1"
            }
         ],
         "Default":"No 1"
      },
      "No 1":{
         "Type":"Pass",
         "Next":"Wait 1"
      },
      "Yes 1":{
         "Type":"Pass",
         "End":true
      },
      "Interview Completed 2":{
         "Type":"Choice",
         "Choices":[
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":true,
               "Next":"Yes 2"
            },
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":false,
               "Next":"No 2"
            }
         ],
         "Default":"No 2"
      },
      "No 2":{
         "Type":"Pass",
         "Next":"Wait 2"
      },
      "Yes 2":{
         "Type":"Pass",
         "End":true
      },
      "Interview Completed 3":{
         "Type":"Choice",
         "Choices":[
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":true,
               "Next":"Yes 3"
            },
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":false,
               "Next":"No 3"
            }
         ],
         "Default":"No 3"
      },
      "No 3":{
         "Type":"Pass",
         "Next":"Wait 3"
      },
      "Yes 3":{
         "Type":"Pass",
         "End":true
      },
      "Interview Completed 4":{
         "Type":"Choice",
         "Choices":[
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":true,
               "Next":"Yes 4"
            },
            {
               "Variable":"$.Payload.completed",
               "BooleanEquals":false,
               "Next":"No 4"
            }
         ],
         "Default":"No 4"
      },
      "No 4":{
         "Type":"Pass",
         "End":true
      },
      "Yes 4":{
         "Type":"Pass",
         "End":true
      },
      "Transform 1":{
         "Type":"Pass",
         "Result":0,
         "Next":"Send Notification 1"
      },
      "Transform 2":{
         "Type":"Pass",
         "Result":2,
         "Next":"Send Notification 2"
      },
      "Transform 3":{
         "Type":"Pass",
         "Result":2,
         "Next":"Send Notification 3"
      },
      "Transform 4":{
         "Type":"Pass",
         "Result":1,
         "Next":"Send Notification 4"
      },
      "Wait 1":{
         "Type":"Wait",
         "Seconds":1,
         "Next":"Transform 2"
      },
      "Wait 2":{
         "Type":"Wait",
         "Seconds":1,
         "Next":"Transform 3"
      },
      "Wait 3":{
         "Type":"Wait",
         "Seconds":1,
         "Next":"Transform 4"
      }
   }
}

Указатель в правильном направлении был бы чрезвычайно полезен.

1 Ответ

0 голосов
/ 13 января 2020

Я понял это.

"CatchAllFallback": {"Type": "Pass", "Result": "Это откат от любого кода ошибки", "End": false},

Был определен несколько раз - что вызвало ошибку.

...