sbt-local-aws
This is an SBT plugin that, given an AWS CloudFormation file, spins up a local AWS environment running in Docker, and creates the required resources.
Watch motivation and intro to plugin here
Prerequisites
Before running remember to configure the AWS credentials.
Just run aws configure
and provide some dummy values. They will be used by the
localstack image.
Importing
To use the plugin, just add it to your plugins.sbt
file:
resolvers += Resolver.bintrayIvyRepo("marialiviach", "sbt-plugins")
addSbtPlugin("marialivia.ch" % "sbt-local-aws" % "0.1.0")
Configuration
In your build.sbt
add:
lazy val exampleWithPlugin = (project in file("example-with-plugin"))
.enablePlugins(LocalAwsPlugin)
.settings(
name := "example-with-plugin",
localAwsCloudformationLocation := (Compile / resourceDirectory).value / "cf.yml",
localAwsStackName := "my-test-stack"
)
localAwsCloudformationLocation
= path to the cloudformation yml file. When parsing the CloudFormation yaml file, the plugin uses default values for any parameter substitution. If no default value is found an error will be returned.localAwsStackName
= the name of the stack that will be created.
Commands
localAwsStart
= starts the required services in Docker using the localstack image, and creates the resources from the cloudformation file.localAwsStop
= stops the Docker container running localstack.
Contributing
Contributions to this plugin are welcome!
For pull requests, please follow the guideline in CONTRIBUTING.md
More support to follow.
License
This version of sbt-local-aws
is released under the Apache License, Version 2.0 (see LICENSE.txt).