Skip to main content

AWS Lambda event handler manager

Project description

Domovoi is an extension to AWS Labs Chalice to handle AWS Lambda event sources other than HTTP requests through API Gateway. Domovoi lets you easily configure and deploy a Lambda function to run on a schedule or in response to an SNS push notification:

import json, boto3, domovoi

app = domovoi.Domovoi()

@app.scheduled_function("cron(0 18 ? * MON-FRI *)")
def foo(event, context):
    context.log("foo invoked at 06:00pm (UTC) every Mon-Fri")
    return dict(result=True)

@app.scheduled_function("rate(1 minute)")
def bar(event, context):
    context.log("bar invoked once a minute")
    boto3.resource("sns").create_topic(Name="bartender").publish(Message=json.dumps({"beer": 1}))
    return dict(result="Work work work")

@app.sns_topic_subscriber("bartender")
def tend(event, context):
    message = json.loads(event["Records"][0]["Sns"]["Message"])
    context.log(dict(beer="Quadrupel", quantity=message["beer"]))

Installation

pip install domovoi

Usage

First-time setup:

chalice new-project

Replace the Chalice app entry point (in app.py) with the Domovoi app entry point as above, then deploy the event handlers:

domovoi deploy

To stage files into the deployment package, use a domovoilib directory in your project where you would use chalicelib in Chalice. For example, my_project/domovoilib/rds_cert.pem becomes /var/task/domovoilib/rds_cert.pem with your function executing in /var/task/app.py with /var/task as the working directory. See the Chalice docs for more information on how to set up Chalice configuration.

License

Licensed under the terms of the Apache License, Version 2.0.

https://travis-ci.org/kislyuk/domovoi.png https://codecov.io/github/kislyuk/domovoi/coverage.svg?branch=master https://img.shields.io/pypi/v/domovoi.svg https://img.shields.io/pypi/l/domovoi.svg https://readthedocs.org/projects/domovoi/badge/?version=latest

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

domovoi-0.0.6.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

domovoi-0.0.6-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file domovoi-0.0.6.tar.gz.

File metadata

  • Download URL: domovoi-0.0.6.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for domovoi-0.0.6.tar.gz
Algorithm Hash digest
SHA256 32855a913235f17a170f370bcba90fcd22d0e3a6f82c6d00eb4f590f962b8683
MD5 2687aae1193aeea284374edc0fae2e06
BLAKE2b-256 ec2e6dcc9677c67a34c17ffe5c7371e5ea15378db9e1881ca704a9af4a4ec4c9

See more details on using hashes here.

File details

Details for the file domovoi-0.0.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for domovoi-0.0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0dce89ce08247c279fce312ca7116eca430b33b0b6b57c7e5126362856a03adc
MD5 d8115844d2e8be12cb7a8d570e0f0bb9
BLAKE2b-256 222fa0359f8005d955809cddc5ab5803ca54136ad16027e880b90593c985f818

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