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.6+
Installation
pip install mangum
Usage
The adapter class Mangum
accepts the following optional arguments:
-
enable_lifespan
: bool (default=True)Specify whether or not to enable lifespan support.
-
api_gateway_base_path
: str (default=None)Base path to strip from URL when using a custom domain name.
-
text_mime_types
: list (default=None)The list of MIME types (in addition to the defaults) that should not return binary responses in API Gateway.
Binary support
Binary response support is available depending on the Content-Type
and Content-Encoding
headers. The default text mime types are the following:
application/json
application/javascript
application/xml
application/vnd.api+json
All Content-Type
headers starting with text/
are included by default.
If the Content-Encoding
header is set to gzip
, then a binary response will be returned regardless of mime type.
Binary response bodies will be base64 encoded and isBase64Encoded
will be True
.
Event and context
The AWS Lambda handler has event
and context
parameters. These are available in the ASGI scope
object:
scope['aws.event']
scope['aws.context']
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:
pip install mangum[full]
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.
Source Distribution
File details
Details for the file mangum-0.7.5.tar.gz
.
File metadata
- Download URL: mangum-0.7.5.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36927e381b44cf55a582190a75e4751583eacae96befa86b7ac91590c2279fa1 |
|
MD5 | fbdbff0604f50cdba3b31ac4115a5637 |
|
BLAKE2b-256 | d3cb908792d44c8ae7fc76884ae23ed521d9518edeae2301c9141bad948b4721 |