Skip to main content

AWS Step Functions State Machine builder.

The primary motivation for this was the amount of boilerplate (Next, End) required to compose a valid state machine definition, but soon one got carried away.

Python 3.6+ only.

Installation

pip install aws-sfn-builder

Generate State Machine Definition from Simple Description

from aws_sfn_builder import Machine

Machine.parse([
    "a",
    [
        ["b-10", "b-11"],
        ["b-20"],
    ],
    "c",
]).to_json()

This will generate:

{
    "StartAt": "a",
    "States": {
        "a": {
            "Type": "Task",
            "Next": "d3d52323-137d-4228-9956-d3b77cc43a92"
        },
        "d3d52323-137d-4228-9956-d3b77cc43a92": {
            "Type": "Parallel",
            "Next": "c",
            "Branches": [
                {
                    "StartAt": "b-10",
                    "States": {
                        "b-10": {
                            "Type": "Task",
                            "Next": "b-11"
                        },
                        "b-11": {
                            "Type": "Task",
                            "End": true
                        }
                    }
                },
                {
                    "StartAt": "b-20",
                    "States": {
                        "b-20": {
                            "Type": "Task",
                            "End": true
                        }
                    }
                }
            ]
        },
        "c": {
            "Type": "Task",
            "End": true
        }
    }
}

Parse Existing State Machine Definition

# TODO load state_machine_json_dict

state_machine = Machine.parse(state_machine_json_dict)

Compile State Machine

# TODO initialise state_machine

state_machine.compile()

Test Your State Machine

Work in progress.

# TODO initialise state_machine

runner = Runner()

@runner.resource_provider("arn:aws:lambda:us-east-1:123456789012:function:Foo")
def foo(input):
    return "foo-result"

final_state, output = runner.run(state_machine)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-sfn-builder-0.0.10.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aws_sfn_builder-0.0.10-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file aws-sfn-builder-0.0.10.tar.gz.

File metadata

  • Download URL: aws-sfn-builder-0.0.10.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for aws-sfn-builder-0.0.10.tar.gz
Algorithm Hash digest
SHA256 2a05eac6df8d7eb354cf3a0fb431ee4d7fccd117ea39a0dfc90873c3c70064c7
MD5 530505fbbeb578bb830345947999689a
BLAKE2b-256 00c5ab655045ecb3665b47dac0b6a728ddd34196debc3dafef8f35ce9fd7f102

See more details on using hashes here.

File details

Details for the file aws_sfn_builder-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: aws_sfn_builder-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for aws_sfn_builder-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 c7201dc9f4e0e6b87c96c8b38d0adce2ee394ce4ce2a02f731a847855f994ddd
MD5 950d302d2238f5ec640c9493f3ee7546
BLAKE2b-256 9249a0854544c6eed2dc4f265885db94508f554bd2a0c8706ab6aa01b85b6386

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.10 This release

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page