Back to Engineering
2015

lambda-uploader

Python · CLI · serverless · automation · cloud-native · open source
View repository

lambda-uploader is a Python CLI tool for packaging and deploying Lambda functions. I built it in 2015, right after AWS announced Python support for Lambda, because manually zipping dependencies and uploading them was tedious and error-prone.

Why I built it

Early Lambda deployments required manually packaging Python code with its dependencies, zipping it, and uploading it through the console or AWS CLI. For anything beyond a single-file function, this meant managing virtualenvs, resolving dependencies, and making sure the zip structure matched what Lambda expected. I didn't want to do that by hand more than twice.

lambda-uploader automated the whole pipeline so deploying a Python Lambda function became a single command. It read a configuration file, created a virtualenv, installed requirements, packaged everything into a zip with the correct structure, and uploaded it to Lambda. It supported VPC configuration, version management, Kinesis subscriptions, and flexible file inclusion.

It picked up over 270 stars on GitHub and became one of the go-to solutions for early Python Lambda deployments. I actually ran into a company using it for their production deployments during an interview. When I mentioned it was neat, they asked if I used it at all. Got to tell them I wrote it.