AWS Step Functions: state machine boilerplate generator
Project description
AWS Step Functions State Machine boilerplate generator.
I was too lazy to set all the Next’s and End’s so I wrote this.
The state machines that I have in mind are pretty simple. They are a combination of sequences and parallelisations.
raw = [
# Step can be declared just as a simple string
"a",
# Or you can provide all the details you know
{
"Name": "b", # used for the name of the state, but removed from the state body
"Type": "Pass",
"Result": "b-result",
},
# c1 and c2 can run in parallel with d:
[
["c1", "c2"],
["d"],
],
]
Make this into a State machine definition with Machine.parse(raw).to_json().
If you need to customise the compiled dictionaries, you can pass state_visitor= keyword argument to to_json (or to compile()). State visitor is a function that takes two positional arguments: the object representing the state, and the dictionary that we have compiled to represent the state in the state machine definitionas expected by AWS.
Here’s a result of Machine.parse(raw).to_json():
{
"StartAt": "a",
"States": {
"a": {
"Type": "Task",
"Next": "b"
},
"b": {
"Type": "Pass",
"Next": "f1ba541c-632b-4a7e-94c4-7aaf60dde8cd",
"Result": "b-result"
},
"f1ba541c-632b-4a7e-94c4-7aaf60dde8cd": {
"Type": "Parallel",
"End": true,
"Comment": "f1ba541c-632b-4a7e-94c4-7aaf60dde8cd",
"Branches": [
{
"StartAt": "c1",
"States": {
"c1": {
"Type": "Task",
"Next": "c2"
},
"c2": {
"Type": "Task",
"End": true
}
}
},
{
"StartAt": "d",
"States": {
"d": {
"Type": "Task",
"End": true
}
}
}
]
}
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aws_sfn_builder-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fa2dc24c14a3b226451f8be0f9db6e3394f7f49765674dd890b6df9dee4a46b |
|
MD5 | a939ee68008f10e598012e93115245c6 |
|
BLAKE2b-256 | e749ce99c49bd9205f67f024846f2bcd52a268ba0a9f822646e67bf68296219e |