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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a05eac6df8d7eb354cf3a0fb431ee4d7fccd117ea39a0dfc90873c3c70064c7
|
|
| MD5 |
530505fbbeb578bb830345947999689a
|
|
| BLAKE2b-256 |
00c5ab655045ecb3665b47dac0b6a728ddd34196debc3dafef8f35ce9fd7f102
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7201dc9f4e0e6b87c96c8b38d0adce2ee394ce4ce2a02f731a847855f994ddd
|
|
| MD5 |
950d302d2238f5ec640c9493f3ee7546
|
|
| BLAKE2b-256 |
9249a0854544c6eed2dc4f265885db94508f554bd2a0c8706ab6aa01b85b6386
|