AWS Lambda & API Gateway support for ASGI
Project description
Mangum
Mangum is an adapter for using ASGI applications with AWS Lambda & API Gateway.
Documentation: https://erm.github.io/mangum
Requirements
Python 3.7
Installation
pip3 install mangum
Usage
The adapter class Mangum
accepts the following optional arguments:
-
debug
: bool (default=False)Enable a simple error response if an unhandled exception is raised in the adapter.
-
enable_lifespan
: bool (default=True)Specify whether or not to enable lifespan support.
Example
from mangum import Mangum
async def app(scope, receive, send):
await send(
{
"type": "http.response.start",
"status": 200,
"headers": [[b"content-type", b"text/plain; charset=utf-8"]],
}
)
await send({"type": "http.response.body", "body": b"Hello, world!"})
handler = Mangum(app, enable_lifespan=False) # disable lifespan for raw ASGI example
WebSockets (experimental)
The adapter currently provides some basic WebSocket support using boto3
with DynamoDB. To install Mangum with the optional dependency:
pip3 install mangum[full]
Frameworks
Any ASGI framework should work with Mangum, however there are cases where certain non-ASGI behaviour of an application will cause issues when deploying to a serverless platform.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.