Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 837
sql_knievel Avatar asked Nov 07 '22 01:11

sql_knievel


1 Answers

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
like image 170
qkhanhpro Avatar answered Nov 15 '22 07:11

qkhanhpro