Chuckwagon is a Scala/sbt AWS Lambda Toolkit. It makes creating and maintaining Continuous Delivery pipelines typesafe and declarative.
Complete introductory guides and reference documentation available on the website,
Add the following to your project/plugins.sbt
file:
addSbtPlugin("com.itv.chuckwagon" % "sbt-chuckwagon" % "0.1.0")
Here is an example of the most basic possible configuration in your build.sbt
:
enablePlugins(ChuckwagonPublishPlugin)
chuckRegion := "<AN_AWS_REGION_EG_-_eu-west-1>"
chuckPublishConfig := chuckPublishConfigBuilder
.withName("<THE_NAME_YOU_WANT_FOR_YOUR_LAMBDA>")
.withHandler("<FULLY_QUALIFIED_CLASS::METHOD>")
.withMemorySizeInMB(192)
.withTimeout("5 seconds")
.withStagingBucketName("<THE_S3_BUCKET_WHERE_CHUCKWAGON_WILL_UPLOAD_YOUR_CODE")
.withCodeFile(assembly)
In order to execute Chuckwagon Tasks with this configuration, you will need AWS Credentials with read and write access to EC2, IAM and Lambda. The Getting Started Guide has more details on one way of configuring this.
Here is an example of the most basic possible usage of Chuckwagon:
chuckPublishSnapshot
- Will create/update your AWS Lambda
- Versioning / Environments (also known as Aliases)
- Deployment Pipelines using sbt-release
- Environment Specific Configurations
- Copying between AWS Accounts
- VPCs
- Many more including,
- Scheduled Executions
- Multiple Lambdas created from the same Assembly/Config
- Invocation / Introspection of AWS from sbt shell
Complete documentation is available on the Chuckwagon website:
Chuckwagon is free to use under the ITV OSS Licence (a derivative of the Apache License, Version 2.0).