Deploying Lambda functions is time-consuming, so we built Scalambda to make it quick and easy. Using Scalambda, you can enable developers to easily build and deploy their own Lambda Functions (and/or ApiGateway instances) with little to no effort or knowledge of AWS required.
Create a new Project
The easiest way to get started with Scalambda is via the Giter8 template. Run the following to get started immediately:
sbt --supershell=false new carpe/scalambda.g8
You can check out the repository as well if you’d like here.
Add to an existing Project
Add the plugin to your project in the
addSbtPlugin("io.carpe" % "sbt-scalambda" % "6.1.0")
After you add the plugin, you’ll probably wanna read through the documentation for how to configure your Lambda Functions.
Our motivations for Scalambda were:
- Make it so anybody can deploy an API to AWS with two or less steps
- Simplify configuration and optimization of Lambda Functions
- Speed up the time to market of new projects by providing as many sensible defaults as we could
- Give developers as much freedom as possible so they can be free to experiment with new ideas
Scalambda started as an internal-only project over a year ago. Over the course of its lifetime it has received a TON of feedback and refinement from several of our teams and friends. Thanks to their efforts, we think we’ve managed to land on a solution that is an incredibly powerful tool.
What is it?
Scalambda itself is composed of three separate libraries. Each of them can be used independently depending on your project’s use case and your team’s toolchain.
sbt-scalambdaAn SBT plugin that should help you to deploy your lambdas, managing libraries, logging and much more.
scalambda-coreA traditional library that provides utilities for writing Scala-based Lambda Functions
scalambda-testingA set of test helpers for testing Lambda Functions
Top priority is continue to create more documentation as well as add some example projects to help people get their Lambda Functions deployed even quicker.
In the meantime, if you have any questions, please don’t hesitate to Open an Issue on our Github repo!