Skip to main content

Activity worker for performing AWS StepFunctions tasks

Project description

StepFunctions Activity Worker

A worker that listens to a StepFunctions activity and executes a provided function using the inputs from the activity task.

The StepFunctions Activity Worker encapsulates all the parts of communicating with the StepFunctions API so you don't have to worry about task heartbeats or maintaining task tokens and success/failure scenarios; all you have to worry about is executing the task.

Installation

Install from PyPI:

pip install stepfunctions_activity_worker

Usage

from stepfunctions_activity_worker import ActivityWorker


def my_task(**task_input):
    """Perform the task based on this task's input."""
    # Perform your task here! 
    return {"result": "done!"}


if __name__ == "__main__":
    activity_arn = "PLACE YOUR ACTIVITY ARN HERE"
    worker = ActivityWorker(activity_arn, my_task)
    worker.listen()

Warning

The ActivityWorker class, if not provided with a client argument on instantiation, will create a properly configured client from your default session.

However, if you are providing an already instantiated client to the ActivityWorker class, make sure it is proply configured to make StepFunctions API calls!

The GetActivityTask API call blocks for 60 seconds which matches the botocore.config.Config default read_timeout. This means that if the API response for GetActivityTask is not punctual (which it often isn't) it will cause unnecessary retry-requests & eventually bubble up an HTTP exception.

import boto3
import botocore
from stepfunctions_activity_worker import ActivityWorker

def my_task(**task_input):
    """Perform the task based on this task's input."""
    # Perform your task here! 
    return {"result": "done!"}

config = botocore.config.Config(
  read_timeout=70,
  # Insert other custom configuration here
)
stepfunctions = boto3.client('stepfunctions', config=config)

activity_worker = ActivityWorker(activity_arn, my_task, client=stepfunctions)

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

stepfunctions_activity_worker-1.1.3.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stepfunctions_activity_worker-1.1.3-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file stepfunctions_activity_worker-1.1.3.tar.gz.

File metadata

  • Download URL: stepfunctions_activity_worker-1.1.3.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for stepfunctions_activity_worker-1.1.3.tar.gz
Algorithm Hash digest
SHA256 9a6f680b85d8253f4bf6c30824c9deb94374cb789791096cd0e661c090796c82
MD5 b85d9eab9187877b18c71b95c2342c21
BLAKE2b-256 7e686776e400938595e091e4e0d4457f021e508c948560e433689ff66d278d82

See more details on using hashes here.

File details

Details for the file stepfunctions_activity_worker-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: stepfunctions_activity_worker-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for stepfunctions_activity_worker-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6d5a3a1bf4f56bb40132d2bd2bbf5a60901f5162d1db76a868545914939b5436
MD5 14940ed3d2c8aa314ec9f468b1421bd6
BLAKE2b-256 1e2610ae740db371d87008f53584a71b7e50c777772fdf48810acce1baceffc8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page