Search code examples
amazon-web-servicesaws-step-functions

AWS Step Functions - include all step input but add a parameter


Let's say I have an AWS step function that simply passes the output from the first step to the second step. But now let's say I need to add an additional input value for that second step.

How do I set the parameters for the second step to keep ALL input fields (without specifying them individually) and add a new input value?

The closest I can get is setting the Parameters like this:

"Second Step": {
  "Type": "Task",
  "Resource": "arn:aws:lambda:blahblahblah",
  "InputPath": "$",
  "Parameters": {
    "Input.$":"$",
    "additionalValue": "ABC"
  }
}

But that results in pushing all of the input values under that new "Input" key, where I really just want them in the root of the dictionary. I could swear there was some magic expression I saw once that made this work the way I want it to, but now I can't find it.

AWS now has a simulator you can try this in. Set InputPath to $ and Parameters to {"Input.$":"$","additionalValue":"ABC"} to see an example of this situation.


Solution

  • You can have this kind of manipulation with ResultSelector. But it can only be applied at ouput step. With this approach you need to either

    • Alter the output of previous step with ResultSelector
    • Create a pass-through step that add the static additional value you wanted