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": "a10c52c9-1ea6-430f-8140-e6c00c4d2163",
"Result": "b-result"
},
"a10c52c9-1ea6-430f-8140-e6c00c4d2163": {
"StartAt": "4c32ee0a-91b7-4db7-8a24-d5321c67237c",
"States": {
"4c32ee0a-91b7-4db7-8a24-d5321c67237c": {
"Type": "Parallel",
"End": true,
"Comment": "4c32ee0a-91b7-4db7-8a24-d5321c67237c",
"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.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f27d4e7af1b5a0494b891a222907235303a88a74fc22beb6bb7a5cad3c586f89 |
|
MD5 | b5979466f5955d88a6157a1f2785e80d |
|
BLAKE2b-256 | 0a0aff8ef67ad123f1309fa14803fad931914081cb47e90039fb57011165b18b |