Skip to main content

AWS Step Functions: state machine boilerplate generator

Project description

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)

Project details


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

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page