LambdaALBRouter
LambdaALBRouter is a small package with flask-like syntax for routing requests from an AWS ALB in Lambda. It parses out all relavent information from the triggering event and passes it through to a matching registered route. With exceptions handled and turned into json responses, utilities for quickly exiting and returning json it is very easy to make quick APIs with ALB-fronted Lambdas in AWS.
Currently there is nothing implemented for handling templates or returning HTML, but that will be added in the future. Runtime data is stored in a separate class and not stored in the instance of ALBRouter to allow that instance to be a global variable (and cached between lambda executions) without running into caching issues.
Installing
pip install -U LambdaALBRouter
Example
from LambdaALBRouter import router, abort, response
app = router.ALBRouter()
def lambda_handler(event, _context):
return app.process_lambda_alb_event(event)
@app.route("/")
def hello():
return response("Hello world!")
@app.route("/hello/<user>")
def hello_user(user):
return response(f"Hello {user}!")
@app.route("/update/<user>", route_methods=["POST"])
def update_user(user, context):
input_data = context.data
query_string = context.query_string
request_headers = context.request_headers
if not "something" in input_data.keys():
abort(400, "Missing required input 'something'")
# Update user in a database...
return response(
{
"message": f"Updated {user}!",
"context": context.__dict__
}
)
Metadata
Release files for LambdaALBRouter 0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| LambdaALBRouter-0.2.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| LambdaALBRouter-0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.1 kB
Release files / LambdaALBRouter-0.2.tar.gz
| Download URL | LambdaALBRouter-0.2.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ddd1413b05d36083fe3b6c7a77b5d4d15f2382359a2d3e0c33b1cc4e60dd616
|
|
BLAKE2b-256 checksum How to use checksums |
9cc8a217230420bf69345af727ae711f3ed32cf99f0fc65f6233b597a9a1214b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8
|
Release files / LambdaALBRouter-0.2-py3-none-any.whl
| Download URL | LambdaALBRouter-0.2-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
581641e03df71730841981c7f16d9ab13d2bdd2f9585d93c361fad5da7f76039
|
|
BLAKE2b-256 checksum How to use checksums |
a0ddb038abd51ad403708915edf87f3f59eaa8f83b055e3a91a14fa006f6983a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8
|