How Step Functions works
This page was generated from content adapted from the AWS Developer Guide
Standard vs. Express Workflows
Note If you define your state machines outside the Step Functions' console, such as in an editor of your choice, you must save your state machine definitions with the extension .asl.json.
States
Note If you define your state machines outside the Step Functions' console, such as in an editor of your choice, you must save your state machine definitions with the extension .asl.json.
State Machine Data
Note Numbers in JSON text format conform to JavaScript semantics. These numbers typically correspond to double-precision IEEE-854 values. The following is valid JSON text: standalone, quote-delimited strings; objects; arrays; numbers; Boolean values; and
null
. The output of a state becomes the input into the next state. However, you can restrict states to working on a subset of the input data by using Input and Output Processing.
Input and Output Processing
Tip Use the data flow simulator in the Step Functions console to test JSON path syntax, to better understand how data is manipulated within a state, and to see how data is passed between states.
Error handling
Note Unhandled errors in Lambda are reported as
Lambda.Unknown
in the error output. These include out-of-memory errors and function timeouts. You can match onLambda.Unknown
,States.ALL
, orStates.TaskFailed
to handle these errors. When Lambda hits the maximum number of invocations, the error isLambda.TooManyRequestsException
. For more information about Lambda function errors, see Error handling and automatic retries in the AWS Lambda Developer Guide.Note Retries are treated as state transitions. For information about how state transitions affect billing, see Step Functions Pricing.
Note Each catcher can specify multiple errors to handle.
Note If you don't specify the
ResultPath
field, it defaults to$
, which selects and overwrites the entire input.Note When you create this Lambda function in the Lambda console, remember to change the Timeout value in the Advanced settings section from 3 seconds (default) to 11 seconds.
Note As a best practice, tasks that reference a Lambda function should handle Lambda service exceptions. For more information, see Handle Lambda service exceptions.
Note You can preserve the state input and the error by using
ResultPath
. See Use ResultPath to Include Both Error and Input in aCatch
.
Tagging in Step Functions
Note To manage tags for activites, see Manage Tags with Step Functions API Actions.
Last updated