beamly / sbt-aws-lambda   1.0.1

Apache License 2.0 GitHub

A (hopefully temporary) fork of https://github.com/gilt/sbt-aws-lambda

Scala versions: 2.10
sbt plugins: 0.13

sbt-aws-lambda - forked by Beamly

A (hopefully temporary) fork of gilt/sbt-aws-lambda.

The rest of the original README follows below.


sbt plugin to deploy code to AWS Lambda

Join the chat at https://gitter.im/gilt/sbt-aws-lambda Maven Central

Installation

Add the following to your project/plugins.sbt file:

addSbtPlugin("com.gilt.sbt" % "sbt-aws-lambda" % "0.4.1")

Add the AwsLambdaPlugin auto-plugin to your build.sbt:

enablePlugins(AwsLambdaPlugin)

Usage

sbt createLambda creates a new AWS Lambda function from the current project.

sbt updateLambda updates an existing AWS Lambda function with the current project.

Configuration

sbt-aws-lambda can be configured using sbt settings, environment variables or by reading user input at deploy time

sbt setting Environment variable Description
s3Bucket AWS_LAMBDA_BUCKET_ID The name of an S3 bucket where the lambda code will be stored
s3KeyPrefix AWS_LAMBDA_S3_KEY_PREFIX The prefix to the S3 key where the jar will be uploaded
lambdaName AWS_LAMBDA_NAME The name to use for this AWS Lambda function. Defaults to the project name
handlerName AWS_LAMBDA_HANDLER_NAME Java class name and method to be executed, e.g. com.gilt.example.Lambda::myMethod
roleArn AWS_LAMBDA_IAM_ROLE_ARN The ARN of an IAM role to use when creating a new Lambda
region AWS_REGION The name of the AWS region to connect to. Defaults to us-east-1
awsLambdaTimeout The Lambda timeout in seconds (1-300). Defaults to AWS default.
awsLambdaMemory The amount of memory in MB for the Lambda function (128-1536, multiple of 64). Defaults to AWS default.
lambdaHandlers Sequence of Lambda names to handler functions (for multiple lambda methods per project). Overrides lambdaName and handlerName if present.

An example configuration might look like this:

retrieveManaged := true

enablePlugins(AwsLambdaPlugin)

lambdaHandlers := Seq(
  "function1"                 -> "com.gilt.example.Lambda::handleRequest1",
  "function2"                 -> "com.gilt.example.Lambda::handleRequest2",
  "function3"                 -> "com.gilt.example.OtherLambda::handleRequest3"
)

// or, instead of the above, for just one function/handler
//
// lambdaName := Some("function1")
//
// handlerName := Some("com.gilt.example.Lambda::handleRequest1")

s3Bucket := Some("lambda-jars")

awsLambdaMemory := Some(192)

awsLambdaTimeout := Some(30)

roleArn := Some("arn:aws:iam::123456789000:role/lambda_basic_execution")

(note that you will need to use a real ARN for your role rather than copying this one).

Publishing new versions of this plugin

This plugin uses sbt-sonatype to publish to Gilt's account on maven central

sbt publishSigned sonatypeRelease