Skip to main content

AWS Lambda Requests Wrapper

Request/Response wrapper for AWS Lambda with API Gateway.

Publish

Python 3.7+ PyPI - License PyPI - Version

codecov pre-commit.ci status CodeQL

Imports: isort Code style: black Checked with mypy

Install

Install and update using pip.

$ pip install -U aws-lambda-requests-wrapper

Example

Converts the lambda_handler syntax:

import json

def lambda_handler(event, context):
    ...
    response = {"key": "value"}
    return {
        "statusCode": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "body": json.dumps(response)
    }

into this:

import json

from aws_lambda_requests_wrapper.lambda_handler import lambda_request_wrapper
from aws_lambda_requests_wrapper.models import Request
from aws_lambda_requests_wrapper.models import Response

@lambda_request_wrapper()
def lambda_handler(request: Request) -> Response:
    ...
    response = {"key": "value"}
    return Response(body=json.dumps(response))

or return a Pydantic model directly:

from pydantic import BaseModel

from aws_lambda_requests_wrapper.lambda_handler import lambda_request_wrapper
from aws_lambda_requests_wrapper.models import Request

class Model(BaseModel):
    model_id: int

@lambda_request_wrapper()
def get_pydantic_model(request: Request) -> Model:
    return Model(model_id=1)

Contributing

Contributions are welcome via pull requests.

First time setup

$ git clone git@github.com:DeveloperRSquared/aws-lambda-requests-wrapper.git
$ cd aws-lambda-requests-wrapper
$ poetry install
$ source .venv/bin/activate

Tools including black, mypy etc. will run automatically if you install pre-commit using the instructions below

$ pre-commit install
$ pre-commit run --all-files

Running tests

$ poetry run pytest

Metadata

Release files for aws-lambda-requests-wrapper 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aws-lambda-requests-wrapper 0.2.3
File Size Uploaded
aws-lambda-requests-wrapper-0.2.3.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aws-lambda-requests-wrapper 0.2.3
File Interpreter ABI Platform
aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / aws-lambda-requests-wrapper-0.2.3.tar.gz

Download URL aws-lambda-requests-wrapper-0.2.3.tar.gz
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
72e26ca658ab53dad1ff49fabfd947177b757e4c2d87bd5513a3cfd497fde288
BLAKE2b-256 checksum
How to use checksums
5de41b3fbb3e84b8932775034a3d65d7d1dd6344c2d093c7d90f11bc53165eac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.10.2 Linux/5.11.0-1027-azure

Release files / aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl

Download URL aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl
Size 6.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3aa401bed727129edbf9fcfbd5edb487f33784a4da9e4fb12664c27c93bb67f9
BLAKE2b-256 checksum
How to use checksums
881c9925ddeee1bfb731420e0cb6122deb0a1122f3af7df09aef0cec4794b5b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.10.2 Linux/5.11.0-1027-azure

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.9

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page