Skip to main content

Request/Response wrapper for AWS Lambda with API Gateway

Project description

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

Project details


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

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page