aws-lambda-list
Table of Contents
A list of AWS lambdas and lambda-related resources. Hopefully some are even useful.
Please note that there are no guarantees that the functions here are safe to run - you're going to have to test them yourself.
This list is under the Apache 2.0 license.
Frameworks
Apex
Apex lets you use languages that are not natively supported by AWS Lambda, such as Golang, through the use of a Node.js shim injected into the build. A variety of workflow related tooling is provided for testing functions, rolling back deploys, viewing metrics, tailing logs, hooking into the build system and more.
Architect
Architect defines infrastructure in a simple plaintext manifest .arc
and utilizes npm script based workflows for provisioning cloud infrastructure in minutes and deploying in seconds.
Infra primitives supported:
- API Gateway Lambda functions; HTTP route handler functions for application/json and text/html
- SNS Lambda functions (and publish events from any other function)
- CloudWatch Events scheduled Lambda functions
- DynamoDB Database tables, indexes, and trigger Lambda functions
Architect governance is under the JS Foundation umbrella and is Apache 2.0 licensed.
Brutus
An HTTP/TCP Distributed Computing Framework in Python using Amazon Lambda functions.
This is a working prototype, still under development. Not suitable for anything other than exploring, making suggestions/issues.
Chalice
Chalice is Amazon's python serverless microframework for AWS. It allows you to quickly create and deploy applications that use Amazon API Gateway and AWS Lambda.
Colly
Another Javascript serverless framework for AWS Lambda and API Gateway.
Dawson-cli
A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda).
Funky
Universal Serverless Web Framework. Write code for serverless similar to Express once, deploy everywhere (thanks to the awesome Zeit Now-CLI). This also includes creating functions that can get triggered by Google Cloud PubSub topics.
Targeted platforms:
- AWS Lambdas
- Google Cloud Functions (incl. reacting to Pub/Sub events or Storage changes)
- Zeit Now (using express under the hood)
Hexaville
Hexaville is a serverless framework for Swift using AWS Lambda + ApiGateway etc as a back end. Build applications in Swift comprised of microservices that run in response to events, automatically scale to meet demand, and only be charged for time actually spent running.
Jets
Jets is a Ruby Serverless Framework. Jets allows you to create serverless applications with a beautiful language: Ruby. It includes everything required to build an application and deploy it to AWS Lambda. The official documentation is at Ruby on Jets.
Middy
Middy is a very simple middleware engine. If you are used to web frameworks like express, than you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly.
Power-jambda
A Java serverless microframework for RESTful API that allows you to quickly develop applications that use Amazon API Gateway and AWS Lambda.
Python-lambda
A toolkit for developing and deploying serverless Python code in AWS Lambda. The Python-Lambda library takes away the guess work of developing your Python-Lambda services by providing you a toolset to streamline the annoying parts.
Python-lambdarest
Python routing mini-framework for AWS Lambda with optional JSON-schema validation.
Features:
- lambda_handler function constructor with built-in dispatcher
- Decorator to register functions to handle HTTP methods
- Optional JSON-schema input validation using same decorator
Pyverless
Pyverless is a mini-framework with a bunch of utilities that aims to help you create APIs using AWS Lambdas fast and in a consistent way. Pyverless provides the following:
- Authentication handling
- Class-Based Handlers
- Configuration
- Exceptions
- JWT and cryptography
- Serializers
- Warmup handling
Rumbda
Rumbda does everything necessary to build a zip file for running ruby inside of an AWS Lambda. This includes downloading traveling ruby, creating a bundle of the project's Gemfile dependencies, and creating a consumable .zip file for use with Lambda.
Scar
SCAR is a framework to transparently execute containers out of Docker images in AWS Lambda, in order to run applications and code in virtually any programming language (see examples for Ruby, R, Erlang and Elixir) on AWS Lambda.
Serverless
Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! Here is a list of Serverless Examples.
Serverless Golang
AWS Lambda Go functions using Serverless Framework and a Python shim.
Sparta
A Go framework for transforming a Go application into an AWS Lambda powered microservice. Supports multiple event sources, compile-time IAM policies, and automatic packaging and marshaling to CloudFormation.
Up
Up focuses on deploying "vanilla" HTTP servers so there's nothing new to learn, just develop with your favorite existing frameworks such as Express, Koa, Django, Golang net/http or others.
Up currently supports Node.js, Golang, Python, Java, Crystal, and static sites out of the box. Up is platform-agnostic, supporting AWS Lambda and API Gateway as the first targets. You can think of Up as self-hosted Heroku style user experience for a fraction of the price, with the security, flexibility, and scalability of AWS.
Webda
A serverless Javascript Development Framework with AWS Lambda and Docker deployment options.
Zappa
Zappa makes it super easy to build and deploy server-less, event-driven Python applications (including, but not limited to, WSGI web apps) on AWS Lambda + API Gateway.
Functions & Applications
This section is for both single functions and applications composed of multiple interconnected AWS lambda functions.
- auto-tag - An open-source tagging solution for AWS. Deploy auto tag to Lambda and set up CloudTrail and have each of your resources tagged with the resource who created it.
- aws-faas-form - A command line tool invoking self-describing Lambda functions to help developers and administrators provide interfaces to Lambdas that are designed to be invoked directly by users. This allows Lambda functions to replace client-side scripts for interactions with resources running on AWS.
- aws-key-disabler - Lambda Function that disables AWS IAM User Access Keys after a set amount of time in order to reduce the risk associated with old access keys.
- aws-lambda-blog-platform - A complete blogging solution that uses the following Amazon Web Services for operation - API Gateway, Lambda, DynamoDB, S3, Cloudfront, SES.
- aws-maintenance-lambda (indix) - Send alerts (to Slack, HipChat) on AWS maintenance events.
- aws-maintenance-lambda (traveloka) - Trigger Jira Issue Creation from AWS Health Events.
- aws-monitor - Run periodically as an AWS Lambda, will detect your instances, add CloudWatch alerting for each, and create CloudWatch dashboards based on your preferences.
- aws-ses-to-elasticsearch - SES is capable of sending reports about email delivery (deliveries, bounces, rejects) to SNS. However, there's no built in way to pipe these reports into something like Elastic Search. This Lambda function bridges the gap and allows to send the reports to ES.
- aws-sns-to-ses-mailer - AWS Lambda application to send emails via AWS SES using information recieved from AWS SNS notifications.
- AWSInventoryLambda - Save AWS inventory as CSV on S3 and trigger emails.
- ballerina-lambda - Run a Ballerina service as a Lambda.
- binaryalert - Serverless, Real-time & Retroactive Malware Detection.
- BucketSnake - Provisions S3 access for IAM roles. A primary feature of Bucket Snake is to crete IAM roles that reside in the account where the S3 buckets live to facilitate proper cross-account S3 bucket access (via a role assumption).
- chalice-transmogrify - Python Microservice that transforms arbitrary XML/RSS to JSON.
- chaos-lambda - A Serverless implementation of Netflix's Chaos Monkey for AWS (runs on AWS Lambda).
- chef-node-cleanup - Automatically Delete Terminated Instances in Chef Server with AWS Lambda when triggered by CloudWatch instance termination events.
- chromeless - Chrome automation made simple. Runs locally or headless on AWS Lambda. See https://chromeless.netlify.com for more details.
- cloud-custodian - Cloud Custodian can be used to manage AWS accounts by ensuring real time compliance to security policies (like encryption and access requirements), tag policies, and cost management via garbage collection of unused resources and off-hours resource management.
- cloudwatch-alarm-to-slack - Uses AWS SNS to send AWS CloudWatch alarms an AWS Lambda code that then pushes them to Slack.
- cloudwatch-logs-customize-alarms - Helps customize alarms from Amazon CloudWatch to fit your specific needs
- cloudwatch-logs-shipper-logzio-lambda - Ships Cloudwatch Logs to logz.io.
- codepipeline-monorepo-webhook - A webhook handler that triggers AWS CodePipelines for mono repos, implemented as a serverless AWS Lambda function.
- cwlogs2sns - AWS CloudWatch to SNS handler for AWS Lambda.
- ddns-function - Dynamically create Route 53 resource records using CloudWatch Events and AWS Lambda.
- ebs_snapper - Allows you to schedule regular EBS snapshots and clean up EBS snapshots on EC2, as well as replicate snapshots to a secondary EC2 region.
- ecs-host-service-scale - Lambda function to ensure an ECS Service is set to the correct Desired Count for a One-Task-Per-Host placement value for any cluster that runs the Service.
- felix - Automate the rotation of IAM keys used by third-party services. Felix is aimed at making it easy to manage IAM keys in third-party services like SumoLogic and GitLab. It aims to be easily extensible by both built-in providers and external plugins.
- flywheel - Flywheel is a HTTP proxy which starts and stops EC2 instances sitting behind it. Flywheel will automatically stop its instances when no requests have been received for a period of time.
- git2params - Lambda based tool for syncing configuration from Git repositories to AWS SSM Parameter Store.
- github-s3-deploy - AWS Lambda function, triggered by Github/SNS webhook, to sync new commits in an S3 bucket.
- honeyฮป - A simple, serverless application designed to create and monitor fake HTTP endpoints (i.e. URL honeytokens) automatically, on top of AWS Lambda and Amazon API Gateway.
- houdini - Houdini runs on AWS Lambda and executes commands on remote hosts over SSH using Paramiko. The host address, username, command, and private key name are provided by the consumer in the Lambda event, the command is executed, and the contents of stdin, stdout, and stderr are returned. The actual content of the private key used for establishing the SSH connection is encrypted with an AWS KMS key and stored in AWS SSM Parameter Store.
- https-to-amqps - Forwards amps messages from API Gateway to RabbitMQ.
- hugo-lambda - Use AWS Lambda to run the Hugo static site generator.
- imprenta - Generates PDF files from HTML using jinja, pdfkit and wkhtmltopdf.
- invokust - A tool for running Locust load tests from within Python without the need to use the locust command line to allow running load tests in python or on AWS Lambda.
- json-server-less-ฮป - Easily deploy json-server in the AWS cloud as a lambda.
- lambda-comments - Blog commenting system built with AWS Lambda, API Gateway, S3, DynamoDB streams, IAM and CloudWatch Logs.
- lambda-keystore - Simple key-value store with TTL for AWS Lambda using DynamoDB.
- lambda-packs - Precompiled packages for Lambda.
- lambda-test-runner - Run your unit tests with Maven or SBT directly on AWS Lambda.
- lambda-warmer - Follows the AWS best practices for keeping your lambdas warm so you don't encounter cold-boot delays.
- lambdaproxy - Lambda powered HTTP/SOCKS web proxy.
- LambdAuth - Sample authentication service implemented with a server-less architecture, using AWS Lambda to host and execute the code and Amazon DynamoDB as persistent storage. This provides a cost-efficient solution that is scalable and highly available and can be used with Amazon Cognito for Developer Authenticated Identities.
- LambStatus - Serverless Status Page System lambstatus.github.io. Eases pain caused by scaling / availability issues. It is terrible if your service is down AND heavy traffic from stuck users stops your status page.
- letsencrypt - Use AWS Lambda to manage SSL certificates for any site that uses Amazon's CloudFront CDN.
- MoonMail - Sends email marketing campaigns with Amazon SES.
- node-letsencrypt-lambda - Use AWS Lambda to manage SSL certificates for Lets-Encrypt.
- perf-cop - Profiles your site with PWMetrics and publishes the results as CloudWatch metrics.
- pr-notify-bot - Sends Slack reminders to CR reviewers to review their pull requests on AWS.
- pricing-tools - A Lambda function that calculates near real-time price of an account's infrastructure including EC2, ELB, EBS, RDS, Lambda, Dynamo DB and Kinesis resources.
- rds_snapshot_copier - Copies automatic RDS snapshots so that they're safe from terraform.
- reaper-lambda - Reaps any and all instances which are not tagged with an expiration date.
- redshift-loader - An Amazon Redshift Database Loader implemented in AWS Lambda.
- redshift_snapshot_copier - Copies automatic redshift snapshots so that they're safe from terraform.
- send-email - Send email using SES.
- send-ses-email - Send emails using Amazon SES. The primary purpose of this function is to provide a server-side back-end for sending emails from static websites.
- serverless-ami-replicator - Replicate AMIs across AWS Regions.
- serverless-backup - A simple AWS Boto3 script to trigger EBS Snapshots using Lambda Functions.
- serverless-ephemeral - Serverless Ephemeral (or Serephem) is a Serverless Framework plugin that helps bundle any stateless library into a Lambda deployment artifact.
- serverless-es-logs - Serverless plugin to transport logs to ElasticSearch.
- serverless-plugin-healthcheck - Creates one schedule event lambda that invokes all the service lambdas you select in a configured time interval (default: 5 minutes) or a specific time, forcing your containers to report their status. In adition, it creates a new endpoint (named __health by default) which can be called to provide a json summary of the current status of each healthcheck.
- serverless-plugin-stackstorm - Plugin for serverless framework to run ready to use actions from StackStorm Exchange as AWS Lambda functions.
- serverless-s3-processing - Uses the Serverless Framework and AWS Lambda to process objects and events from S3.
- serverless-secrets - Sample serverless AWS Lambda application that leverages the AWS SSM parameter store for managing secrets.
- serverless-southwest-check-in - Powered by the AWS Serverless Platform (Lambda, Step Functions, and SES), Serverless Southwest Check In is an email bot which will automatically check you into your Southwest flights. Never sit in a middle seat again!
- serverless-url-shortener - URL shortener for AWS Lambda and S3.
- SES Email Forwarder - Node.js script for AWS Lambda that uses the inbound/outbound capabilities of AWS Simple Email Service (SES) to run a "serverless" email forwarding service. Instead of setting up an email server on an EC2 instance to handle email redirects, use SES to receive email, and the included Lambda script to process it and send it on to the chosen destination.
- ses-forwarder - A Python 2.7 Email forwarder script for AWS Lambda, which uses the AWS SES and S3 services.
- shell-execute - Executes a shell command and returns the output. Additional executable binaries can be deployed with and used by the function.
- Shelvery - Shelvery is a tool for creating backups in Amazon cloud (AWS). It currently supports RDS and EBS backups, and AMI support is scheduled to be released soon.
- sns2slack - AWS SNS to slack notifications handler for AWS Lambda.
- splunk-aws-serverless-apps - Splunk AWS Serverless applications and Lambda blueprints, including associated CloudFormation templates (using SAM) for automated packaging & deployment.
- ssh-ec2-lambda - An AWS lambda function to start, ssh and stop an ec2 instance with python.
- stash - Lambda script to ship data from S3 to other data stores, like Elasticsearch. Out of the box it supports AWS Cloudfront access logs, AWS Cloudtrail API logs, AWS CloudWatch logs, AWS Config change logs, and can be extended with custom handlers.
- StreamAlert - StreamAlert is a serverless, realtime data analysis framework which empowers you to ingest, analyze, and alert on data from any environment, using datasources and alerting logic you define.
- sumologic-aws-lambda-unzip - Java Lambda function that can uncompress a zip file, read the files inside and send them to Sumo Logic.
- terraform-aws-lambda - Lambda module for Terraform.
- url-shortener - URL Shortener service built with serverless framework on AWS, API Gateway + Lambda + DynamoDB.
- watchtower - Serverless HTTP(S) Endpoint Monitoring With AWS Lambda & CloudWatch.
Other Resources
Miscellaneous
- awesome-layers - A curated list of awesome AWS Lambda Layers
- aws-lambda-cheatsheet - A cheatsheet for AWS Lambda (focuses on Python)
- Reverse Engineering AWS Lambda - This is a great article spelunking through the details of how lambdas actually work under the covers.
Tutorials
- AWS IOT Button Example - This is an Internet Button reference project: when a button on the device is pressed, a cloud backend gets a notification and performs an action. In this particular case, AWS Lambda function sends an email to the specific email address.
- aws-lambda-vpc-nat-examples - Example of setting up AWS lambda function with VPC and NAT.
- Creating A Highly Scalable Website Monitoring Service in half an hour using AWS Lambda - Article by Elliot Forbes describing building a Website uptime monitor that will allow people to fill in a form and automagically create a new lambda function that will check the health of the site every 15 minutes and send an email should one of these sites die.
- Creating a Scalable Website Analysis Tool using Lambda and API Gateway and S3 - Another article by Elliot Forbes, this time showing how to leverage AWS Lambda, the API Gateway and S3 to do website analysis.
- How to Use Python 3 Type Hints in AWS Lambda - Static Type Checkers help you find simple (but subtle) bugs in your Python code. Check out lambda_types.py and incrementally improve your code base and development/debugging experience with type hints.
- Iโm afraid youโre thinking about AWS Lambda cold starts all wrong - Good description of how AWS Lambda Cold Starts will affect your serverless app performance and some ways to mitigate them.
- Lambda Tutorial: Lambda + Serverless = HAPPY
- Learn AWS Lambda - Tutorial that walks you through learning how to use AWS Lambda.
- Learning Lambda - Mike Roberts' series on learning to use Lambda
- Monitor multiple MySQL RDS with single Lambda function - Tutorial on monitoring multiple RDS databases with a single Lambda function.
- Nightmare-lambda-tutorial - A sample project and tutorial to show how to run NightmareJS on AWS Lambda.
- Serverless Starter - An opinionated starter kit by orangejellyfish for Serverless framework apps running in AWS. Built to be future-proof. Inspired by and adapted from the excellent serverless-babel-starter project by Postlight.
Utilities
- alphorn - Alphorn is a simple Python package to handle Lambda invocations routed by the AWS API Gateway with a
{proxy+}
configuration. - amazon-rust - A thin Rust layer on top of the official Amazon Linux docker image. Suitable for both local development and continuous deployment/integration workflows. Perfect for pre-building building binaries that target various AWS services.
- api-gateway-sim - API Gateway simulator for Node JS Lambda that allows you to test your Lambda function locally.
- authorizer-basic-auth - Serverless Application that creates Lambda function to use as an authorizer in Amazon API Gateway for HTTP Basic Auth and a DynamoDB table for users.
- aws-lambda-container-image-converter - repackages container images (such as Docker images) into AWS Lambda layers, and publishes them as new layer versions.
- aws-lambda-dotnet - Libraries, samples and tools to help .NET Core developers develop AWS Lambda functions.
- aws-lambda-local - Run javascript AWS Lambda functions locally.
- aws-lambda-runner - An AWS Lambda Java simulator that allows running and debugging Lambda functions authored in Java locally.
- aws-limit-monitor - Customizable Lambda functions to proactively notify you when you are about to hit an AWS service limit. Requires Enterprise or Business level support to access Support API.
- aws-sam-cli -
sam
is the AWS CLI tool for managing Serverless applications written with AWS Serverless Application Model (SAM). SAM Local can be used to test functions locally, start a local API Gateway from a SAM template, validate a SAM template, generate sample payloads for various event sources, and generate a SAM project in your favorite Lambda Runtime. - claudia - Claudia makes it easy to deploy Node.js projects to AWS Lambda and API Gateway. It automates all the error-prone deployment and configuration tasks, and sets everything up the way JavaScript developers expect out of the box. This means that you can get started with Lambda and API Gateway easily, and focus on solving important business problems instead of dealing with AWS deployment workflows.
- cljs-lambda - Utilities around deploying Clojurescript functions to AWS Lambda.
- cookiecutter - A cookiecutter template to create AWS Lambda functions in Python.
- dd-aws-lambda-functions - Repository of lambda functions that process aws log streams and send data to datadog
- deploy-notebook - Quickly deploy code you've written in a jupyter notebook as a lambda, as described in Deploy Jupyter Notebook to AWS Lambda
- django-docker-zappa-boilerplate - Template for settting up serverless Django with Zappa, Docker, MySQL and Nginx for local development and remote deployment to AWS Lambda / API Gateway.
- docker-lambda-python36-rust - Docker image that builds Rust applications serverless for AWS Lambda.
- docker-lambda - Docker images and test runners that replicate the live AWS Lambda environment.
- domovoi - Domovoi is an extension to AWS Chalice to handle AWS Lambda event sources other than HTTP requests through an API Gateway. Domovoi lets you easily configure and deploy a Lambda function to serve HTTP requests through an ALB, on a schedule, or in response to a variety of events like an SNS or SQS message, S3 event, or custom AWS step function transitions.
- formplug-serverless - A form forwarding service for AWS Lambda that you can use to accept form submissions by email without server-side code.
- goad - An AWS Lambda powered, highly distributed, load testing tool built in Go.
- http-lambda - A simple golang-based utility which enables AWS Lambda functions to be invoked from an HTTP endpoint. Use if you want to expose Lambda functions over HTTP without using the AWS API Gateway.
- iopipe-python - This package provides analytics and distributed tracing for event-driven applications running on AWS Lambda.
- iopipe - AWS Lambda metrics, tracing, & analytics for NodeJS. See www.iopipe.com for details.
- iron-io/lambda - A set of tools, tests and libraries to convert Amazon AWS Lambda functions into Docker images that can run on any computer or cloud provider.
- jiffy-route-builder - A tiny module (<5KB) to create lightweight API handlers using Node.js with AWS Lambda and API Gateway. Uses another tiny (<2KB) library called route-recognizer to match URLs against routing patterns, and forwards requests to handler functions. Written in TypeScript so you have type information available - especially useful to figure out what's available in the request that API Gateway sends to your handler.
- juniper - Juniper is a packaging tool with a with a single purpose in mind: streamline and standardize the creation of a zip artifact for a set of Python AWS Lambda functions.
- lambda-deployer - Automate the deployment of AWS Lambda functions easily from either a developers machine or CI system.
- lambda-git - A git binary installed through NPM, for use with AWS Lambda.
- lambda-packager - Uses the amazonlinux Docker image to build Python packages for AWS Lambda.
- lambda-packages - Various popular python libraries, pre-compiled to be compatible with AWS Lambda. The best way to use these packages is with Zappa, which will automatically install the right packages during deployment, and do a million other useful things https://blog.zappa.io.
- lambda-tdd - A testing framework for AWS Lambda functions. Useful for integration testing as you can examine how your lambda function executes for certain input and specific environment variables. Tries to model the cloud execution as closely as possible
- lambda-tester - Helper for unit testing AWS Lambda functions using Node.js
- lambda_utils - Python helper decorator for handling different AWS Event types for AWS Lambda.
- lambdacore - AWS Lambda Layer of various core functions for Python Lambda functions.
- LambdaGuard - An AWS Lambda auditing tool designed to create asset visibility and provide actionable results. It provides a meaningful overview in terms of statistical analysis, AWS service dependencies and configuration checks from the security perspective.
- lambdaSH - Run shell commands inside AWS Lambda environment
- lambdaskill - A simple Python 3 toolkit to build Alexa Skills using AWS Lambda.
- lambdaWrap - Ruby gem to simplify deployment of AWS Lambda based web services.
- lambdify - Lambdify is a set of tools to make it much easier to build and consume AWS Lambda functions.
- lightsail-backup - Automate backups of AWS Lightsail instances.
- mangum - Mangum is a library for using ASGI applications with FaaS platforms.
- python-aws-dataclasses - Provides data-classes for AWS lambda events and other AWS data. The dataclasses are type-annotated, as to allow for full IDE (code completion / IntelliSense) support.
- python-vendor - Provides an AWS service API for building compiled Python packages, ready for use in your own AWS Lambda functions.
- ScaLambda - Provides a more idiomatic scala approach to defining AWS Lambda functions. It uses Circe's auto derived JSON encoder/decoders for handling the serialisation and deserialisation of input and output messages. It also provides exception handling and aims to remove all boilerplate from your lambda code.
- shadowreader - ShadowReader has the ability to replay production traffic to a destination of your choice by collecting traffic patterns from access logs. It is built on AWS Lambda, S3 and Elastic Load Balancers.
- simple-lambda-router - A small router utility for lambda functions handling HTTP events from multiple resources and methods.
- spector - Open source alternative to monitor, debug and improve your Lambda Functions. Spector will make use of AWS APIs to fetch data from your AWS account and produce actionable metrics and detailed data without the need of editing any code!
- Tiger-Lambda - Tiger.Lambda is a .NET library for simplifying the configuration and development of AWS Lambda Functions written in C#. It provides a common host allowing for configuration and dependency injection nearly identical to that of ASP.NET Core.
- webhook-lambda - Easily create a webhook on AWS. Use it to launch a CodePipeline pipeline or customise the serverless function as you see fit.
- webpack-aws-lambda-upload-plugin - Zip and upload your AWS Lambda function directly from webpack.