AWS step function Not creating exact work flow

Viewed 58

We need to create a step function that will look like below

 (start sns)  
   |               ----Failed--------> Notify SNS Failed <--------End notify-
   |              |                               |Failed                            
   |              |         success               |         success            
(start) ---> [Lambda1] -------------------> [lambda 2] ------------------> (end)

I did following state machine but its not as expected

{
  "Comment": "Work flow",
  "StartAt": "Start  SNS",
  "States": {
  "Start SNS": {
    "Type": "Task",
    "Resource": "arn:aws:states:::sns:publish",
    "Parameters": {
      "TopicArn": "arn:aws:sns:us-east-1:ACCOUNT_ID:mystartTopic",
      "Message": {
        "Input": "Step Function started lambda1"
      }
     },
     "Next": "lambda1"
},
    "lambda1": {
      "Type": "Task",
      "Resource": "arn:lambda1",
      "Next": "lambda2"
    },
    "lambda2": {
      "Type": "Task",
      "Resource":"arn:lambda2",
      "Next": "End SNS"
    },
    "End Billing SNS":{
     "Type": "Task",
    "Resource": "arn:aws:states:::sns:publish",
    "Parameters": {
      "TopicArn": "arn:aws:sns:us-east-1:ACCOUNT_ID:myendTopic",
      "Message": {
        "Input": "Step Function ended "
      }
     },
     "End":true
    }
  }
}

It will create

(start) ---> start sns --> lambda 1 --> lambda 2 --> end sns --> end

Please help

1 Answers

State machine definition should like like this for this flow

             ----Failed--------> Notify SNS Failed <--------End notify---|
             |                               |Failed                      |      
             |         success               |         success            |

(start) ---> [Lambda1] -------------------> [lambda 2] ------------------> (end)

   {
  "Comment": "Work flow",
  "StartAt": "Start SNS",
  "States": {
    "Start SNS": {
    "Type": "Task",
    "Resource": "arn:aws:states:::sns:publish",
    "Parameters": {
      "TopicArn": "arn:aws:sns:us-east-1:ACCOUNT_ID:mystartTopic",
      "Message": {
        "Input": "Step Function started lambda1"
      }
     },
     "Next": "lambda1"
    },
    "lambda1": {
      "Type": "Task",
      "Resource": "arn:lambda1",
      "Catch": [
        {
          "ErrorEquals": ["CustomError"],
          "Next": "Notify SNS Failed"
        }
      ],
      "Next": "lambda2"
    },
    "lambda2": {
      "Type": "Task",
      "Resource":"arn:lambda2",
      "Catch": [
        {
          "ErrorEquals": ["CustomError"],
          "Next": "Notify SNS Failed"
        }
      ],
      "End":true 
    },
    "Notify SNS Failed": {
    "Type": "Task",
    "Resource": "arn:aws:states:::sns:publish",
    "Parameters": {
      "TopicArn": "arn:aws:sns:us-east-1:ACCOUNT_ID:mystartTopic",
      "Message": {
        "Input": "Step Function started lambda1"
      }
     "End":true 
     }
    
  }
}

Please do not mind any syntax or indentation error

Related