AWS Step Functions
Developer Guide

Getting Started

This tutorial introduces you to the basics of working with AWS Step Functions. You'll create a simple, independently running state machine using a Pass state. The Pass state represents a no-op (an instruction with no operation).

Step 1: Creating a State Machine

Step Functions offers various predefined state machines as templates. Create your first state machine using the Hello World template.

To create the state machine

  1. Sign in to the Step Functions console, and then choose Get Started.

  2. On the Define state machine page, review the State machine definition and the visual workflow.

              Hello world.

    Step Functions fills in the name of the state machine automatically. It also populates the Code pane with the Amazon States Language description of the state machine.

    { "Comment": "A Hello World example of the Amazon States Language using a Pass state", "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "Result": "Hello World!", "End": true } } }

    This JSON text defines a Pass state named HelloWorld. For more information, see State Machine Structure.

  3. Use the graph in the Visual Workflow pane to check that your Amazon States Language code describes your state machine correctly.

              Visual Workflow.

    If you don't see the graph, choose 
    in the Visual Workflow pane.

  4. Choose Next.

  5. Create or enter an IAM role.

    • To create a new IAM role for Step Functions, select Create an IAM role for me, and enter a Name for your role.

    • If you have previously created an IAM role with the correct permissions for your state machine, select Choose an existing IAM role. Select a role from the drop-down, or provide an ARN for that role.


    If you delete the IAM role that Step Functions creates, Step Functions can't recreate it later. Similarly, if you modify the role (for example, by removing Step Functions from the principals in the IAM policy), Step Functions can't restore its original settings later.

  6. Select Create state machine.

Step 2: Starting a New Execution

After you create your state machine, you can start an execution.

To start a new execution

  1. On the Helloworld page, choose New execution, or Start execution if you have started an execution before.

    The New execution window is displayed.

  2. (Optional) To help identify your execution, you can specify an ID for it in the Enter an execution name box. If you don't enter an ID, Step Functions generates a unique ID automatically.


    Step Functions allows you to create state machine, execution, and activity names that contain non-ASCII characters. These non-ASCII names don't work with Amazon CloudWatch. To ensure that you can track CloudWatch metrics, choose a name that uses only ASCII characters.

  3. Choose Start execution.

    A new execution of your state machine starts, and a new page showing your running execution is displayed.

  4. (Optional) In the Execution Details section, choose the Info tab to view the Execution Status and the Started and Closed timestamps.

  5. To view the results of your execution, choose the Output tab.

              State machine results.

Step 3: (Optional) Update a State Machine

You can update your state machine for future executions.


State machine updates in Step Functions are eventually consistent. All executions within a few seconds will use the updated definition and roleArn. Executions started immediately after updating a state machine may use the previous state machine definition and roleArn.

To update a state machine

  1. On the Helloworld page, choose Edit.

    The Edit page is displayed.

  2. In the Code pane, edit the Amazon States Language description of the state machine. Update the Result to read Hello World has been updated!

    { "Comment": "A Hello World example of the Amazon States Language using a Pass state", "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "Result": "Hello World has been updated!", "End": true } } }
  3. (Optional) Select a new IAM role from the IAM role for executions list.


    You can also select Create new role to create a new IAM role. For more information, see Creating IAM Roles for AWS Step Functions.

  4. Choose Save and then Start execution.

  5. On the New execution page choose Start Execution.

  6. To view the results of your execution, select the HelloWorld state in the Visual workflow and expand the Output section under Step details.

              Execution output


    The output text matches your newly updated state machine.

Next Steps

Now that you've created a simple state machine using a Pass state, try the following: