Today I want to show you three starter projects for AWS Lambda using CloudFormation and SAM – Serverless Application Model. I always like if I have some boilerplate code and can get started quickly without copying code or project structures from an existing (and mature) project. Therefore I thought it’s good to have them in one repository. You can find them on GitHub. The projects can be used for NodeJS and Java. Also one project contains both: usage of Java and NodeJS Lambdas in one CloudFormation template.
Since I’m working with Atlassian Confluence addons, I always have the problem that I need to start a local Confluence standalone instance in a specific version. This is often annoying, because you always have to download the zip file, unzip it and adjust some settings files (of course you can use the Atlassian Plugin SDK, but this has some drawbacks if you want to reproduce bugs). For example you have to add a home directory where Confluence stores the application data or add a line to be able to debug the Confluence addon you’re developing. The way I did it was very error prone, because I had to follow a few steps manually. Then a few weeks ago I got the idea to create a script for it. The problem was/is: I don’t like native bash/shell scripts that much. So what’s the alternative? I decided to create a NodeJS module using some external libs and provide a command line tool. Make sure to check out the project and test it: confluence-starter Bitbucket Repository.
With the confluence-starter CLI you can select a Confluence version which will be downloaded, unzipped and prepared in terms of developer settings like (debug) port, application context path, batching, minification, etc. and it will be started automatically:
# Downloads, unzips, prepares and starts Confluence instance on default port 1990
$ conf-starter start 5.9.6
You can also set some other settings by adding optional parameters to the command or list the already downloaded versions:
# add optional parameters: port, context path and debug port
$ conf-starter start 5.9.6 -p 1991 -c /conf -d 5005
# list already downloaded versions
$ conf-starter list
# clear home directory of a downloaded version
$ conf-starter clean 5.9.6
If you have any problems, please raise an issue in the repository. The next step is to push it to NPM and also create a GUI for it, so wait for an update! 🙂