aws_stepfunction
Documentation
Welcome to Note
You may not viewing the full document, FULL DOCUMENT IS HERE
Why this Library?
aws_stepfunction
provides AWS StepFunction developer a "smooth", "interruption free", "enjoyable" development experience.
If your mind set matches most of the following, aws_stepfunction
is the right tool for you:
- I love the AWS StepFunction Visual Editor
- I love Python
- I don't want to spent much time learning the Amazon State Machine JSON DSL (Domain Specific Language)
- I can't memorize the code syntax
- I respect code readability and maintainability
Talk is cheap, show me the code
The following code snippet is an equivalent of the below Workflow in the Visual Editor
import aws_stepfunction as sfn
from boto_session_manager import BotoSesManager
# Declare a workflow object
workflow = sfn.Workflow(comment="The power of aws_stepfunction library!")
# Define some tasks and states
task_invoke_lambda = sfn.actions.lambda_invoke(func_name="stepfunction_quick_start")
succeed = sfn.Succeed()
fail = sfn.Fail()
# Orchestrate the Workflow
(
workflow.start_from(task_invoke_lambda)
.choice([
( # define condition
sfn.not_(sfn.Var("$.body").string_equals("failed!"))
.next_then(succeed)
),
( # define condition
sfn.Var("$.body").string_equals("failed!")
.next_then(fail)
),
])
)
# Declare an instance of State Machine
state_machine = sfn.StateMachine(
name="stepfunction_quick_start",
workflow=workflow,
role_arn="arn:aws:iam::111122223333:role/my_lambda_role",
)
# Deploy state machine
bsm = BotoSesManager(profile_name="my_aws_profile", region_name="us-east-1")
state_machine.deploy(bsm)
# Execute state machine with custom payload
state_machine.execute(bsm, payload={"name": "alice"})
# delete step function
state_machine.delete(bsm)
You mentioned "Smooth Development Experiment"?
I guess "a picture is worth a thousand words":
Install
aws_stepfunction
is released on PyPI, so all you need is:
$ pip install aws_stepfunction
To upgrade to latest version:
$ pip install --upgrade aws_stepfunction