flask like web framework for AWS Lambda
Project description
lambdarest
Python routing mini-framework for AWS Lambda with optional JSON-schema validation.
Features
lambda_handler
function constructor with built-in dispatcher- Decorator to register functions to handle HTTP methods
- Optional JSON-schema input validation using same decorator
Merchandise ❤️
You can support the development by buying a wonderful cup or buy coffee for the maintainers cup
External articles / tutorials
-
devgrok.com: Create a Private Microservice Using an Application Load Balancer
Article about how to use lambdarest with AWS Application Load Balancer
-
rockset.com: Building a Serverless Microservice Using Rockset and AWS Lambda
Article about how to set up lambdarest in AWS infrastructure
Other articles? add them here
Installation
Install the package from PyPI using pip:
$ pip install lambdarest
Getting Started
This module helps you to handle different HTTP methods in your AWS Lambda.
from lambdarest import lambda_handler
@lambda_handler.handle("get")
def my_own_get(event):
return {"this": "will be json dumped"}
##### TEST #####
input_event = {
"body": '{}',
"httpMethod": "GET",
"resource": "/"
}
result = lambda_handler(event=input_event)
assert result == {"body": '{"this": "will be json dumped"}', "statusCode": 200, "headers":{}}
Documentation
See docs for documentation and examples covering amongst:
- Advanced usage example
- Query params
- Headers and MultiValueHeaders
- Routing
- Authorization Scopes
- Exception Handling
- AWS Application Load Balancer
- CORS
Anormal unittest behaviour with lambda_handler
singleton
Because of python unittests leaky test-cases it seems like you shall beware of this issue when using the singleton lambda_handler
in a multiple test-case scenario.
Tests
Use the following commands to install requirements and run test-suite:
$ pip install -e ".[dev]"
$ black tests/ lambdarest/
$ rm -f test_readme.py
$ pytest --doctest-modules -vvv
For more info see Contributing...
Changelog
See HISTORY.md
Contributors
Thanks for contributing!
@sphaugh, @amacks, @jacksgt, @mkreg, @aphexer, @nabrosimoff, @elviejokike, @eduardomourar, @devgrok, @AlbertoTrindade, @paddie, @svdgraaf, @simongarnier, @martinbuberl, @adamelmore, @sloev
And by the way, we have a Code Of Friendlyhood!
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
Built Distribution
File details
Details for the file lambdarest-13.0.3.tar.gz
.
File metadata
- Download URL: lambdarest-13.0.3.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e177130d49ead512dd2f5ee14e8fb5d4c266cc9dc548b9b23a14deb6fa95cf5e |
|
MD5 | 06d5f9acd75e18447abca67cd798214d |
|
BLAKE2b-256 | 97987faadc7212790adfe4f59f0c31a28f48c804114c884db0d694ce2e3d2d01 |
File details
Details for the file lambdarest-13.0.3-py3-none-any.whl
.
File metadata
- Download URL: lambdarest-13.0.3-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ed65e3530af289165def7e1662be1504b20dd4c60f30f5cc1ba1fbeab399a00 |
|
MD5 | dc79ae3efd5c6dee5ef60909f0084cad |
|
BLAKE2b-256 | 322aedecbf915d056ae0c7c84d8ce3c592b75c18059b4e38d20b70e53e48bef8 |