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

Links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-lambda-requests-wrapper-0.2.3.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file aws-lambda-requests-wrapper-0.2.3.tar.gz.

File metadata

  • Download URL: aws-lambda-requests-wrapper-0.2.3.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.11.0-1027-azure

File hashes

Hashes for aws-lambda-requests-wrapper-0.2.3.tar.gz
Algorithm Hash digest
SHA256 72e26ca658ab53dad1ff49fabfd947177b757e4c2d87bd5513a3cfd497fde288
MD5 8c35efb8239721ef3299a8bdbeb808f5
BLAKE2b-256 5de41b3fbb3e84b8932775034a3d65d7d1dd6344c2d093c7d90f11bc53165eac

See more details on using hashes here.

File details

Details for the file aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3aa401bed727129edbf9fcfbd5edb487f33784a4da9e4fb12664c27c93bb67f9
MD5 1b15b788a4a3d6d5b04256ecd9fbff49
BLAKE2b-256 881c9925ddeee1bfb731420e0cb6122deb0a1122f3af7df09aef0cec4794b5b3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 files

0.2.2

2 files

0.2.1

2 files

0.1.9

2 files

0.1.6

2 files

0.1.4

2 files

0.1.2

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page