Skip to main content

Yet the most developer friendly orchestration tool on AWS.

Project description

Documentation Status https://github.com/MacHu-GWU/aws_stepfunction-project/workflows/CI/badge.svg https://codecov.io/gh/MacHu-GWU/aws_stepfunction-project/branch/main/graph/badge.svg https://img.shields.io/pypi/v/aws_stepfunction.svg https://img.shields.io/pypi/l/aws_stepfunction.svg https://img.shields.io/pypi/pyversions/aws_stepfunction.svg https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
https://img.shields.io/badge/Link-Document-green.svg https://img.shields.io/badge/Link-API-blue.svg https://img.shields.io/badge/Link-Source_Code-blue.svg https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

Welcome to aws_stepfunction Documentation

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)
https://user-images.githubusercontent.com/6800411/183264808-ecf1c7bc-0c9a-40fd-a42d-ea06e472c9ec.png

You mentioned “Smooth Development Experiment”?

I guess “a picture is worth a thousand words”:

https://user-images.githubusercontent.com/6800411/183265960-5c1b3e15-e3ac-4035-a8f3-b39d4810e466.png https://user-images.githubusercontent.com/6800411/183265961-9312df74-9fbe-42b3-bfc8-747ce0009929.png https://user-images.githubusercontent.com/6800411/183265962-c01bc5d4-7d0a-40a2-9a6a-0207a12b41cb.png https://user-images.githubusercontent.com/6800411/183265963-8d177efb-93a9-484a-856a-cc2d6f7c4d15.png

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

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_stepfunction-0.0.5.tar.gz (41.9 kB view details)

Uploaded Source

Built Distribution

aws_stepfunction-0.0.5-py2.py3-none-any.whl (46.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file aws_stepfunction-0.0.5.tar.gz.

File metadata

  • Download URL: aws_stepfunction-0.0.5.tar.gz
  • Upload date:
  • Size: 41.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.11

File hashes

Hashes for aws_stepfunction-0.0.5.tar.gz
Algorithm Hash digest
SHA256 d544b12d89595f613c53a15d0381f4461cc465bc30191ba3d7cbab1798700509
MD5 98fa4622ce5a1b3b77fcdd1bcc998cf9
BLAKE2b-256 6c10a958b4ddf893271a21711ffdf8a71ff99e85973ce912d38adc17136780a1

See more details on using hashes here.

File details

Details for the file aws_stepfunction-0.0.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for aws_stepfunction-0.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a0fc8e34fc567dca74b286b773af05a4c0808c4b5d830335e0ba247a2461196d
MD5 89fdbc4d8b5a3e3f8a2094b68ef6e058
BLAKE2b-256 299acf650e58e86467453484dfb749bbf2a2631a5ddc920176ee3894dd7d62c9

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