You can create an action that chains together a sequence of actions.
Several utility actions are provided in a package called /whisk.system/utils
that you can use to create your first sequence. You can learn more about packages in the Packages section.
/whisk.system/utils
package.$ wsk package get --summary /whisk.system/utils
package /whisk.system/utils: Building blocks that format and assemble data action /whisk.system/utils/head: Extract prefix of an array action /whisk.system/utils/split: Split a string into an array action /whisk.system/utils/sort: Sorts an array action /whisk.system/utils/echo: Returns the input action /whisk.system/utils/date: Current date and time action /whisk.system/utils/cat: Concatenates input into a string
You will be using the split
and sort
actions in this example.
$ wsk action create sequenceAction --sequence /whisk.system/utils/split,/whisk.system/utils/sort
This action sequence converts some lines of text to an array, and sorts the lines.
$ wsk action invoke --blocking --result sequenceAction --param payload "Over-ripe sushi,\nThe Master\nIs full of regret."
{ "length": 3, "lines": [ "Is full of regret.", "Over-ripe sushi,", "The Master" ] }
In the result, you see that the lines are sorted.
Note: Parameters passed between actions in the sequence are explicit, except for default parameters. Therefore parameters that are passed to the action sequence are only available to the first action in the sequence. The result of the first action in the sequence becomes the input JSON object to the second action in the sequence (and so on). This object does not include any of the parameters originally passed to the sequence unless the first action explicitly includes them in its result. Input parameters to an action are merged with the action's default parameters, with the former taking precedence and overriding any matching default parameters. For more information about invoking action sequences with multiple named parameters, see Setting default parameters.