The AWS announcement of Application Load Balancers supporting Lambda functions made my reInvent experience!
In doing a PoC however, I found that the statusDescription
element was somewhat of an annoyance to code. This package provides a method to return the appropriate format of this field without copy/paste response data and allowing a strategy to implement this to swap out response formats for API Gateway or ALB as needed.
Run pip install alb-response
from alb_response import alb_response
def lambda_handler(event, context):
response_dict = process_the_event(event)
return alb_response(
http_status=200,
json=response_dict,
is_base64_encoded=False,
)
- Setup an Application Load Balancer (ALB)
- Create a target group for the Lambda
- Assign appropriate permissions to your Lambda function
- Attach the target group to the ALB with a rule
Contributions are welcome! Please open an issue or make a pull request.
If making a pull request, please run the tests and ensure that you maintain or increase code coverage.
To make this project more portable and keep environments organized, this project leverages pipenv
. To install deterministic dependencies, run pipenv sync
.
To run the tests, install the dependencies and run behave
.
To get code coverage as well, run coverage run --source='.' -m behave
followed by coverage report
.
0.1.0
- Initial Release
0.1.1
- Dependency update to resolve CVE-2019-11324.
0.1.2
- Patch to support null json responses without sending an empty json object