sparadiso / cloudformation-bootstrap-lambda

Toy example with a bootstrap lambda function defined in a cloudformation template

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cloudformation with bootstrap lambda

Prototype example demonstrating how to do last-mile customizations via bootstrap lambda defined in a cloudformation template. The basic approach is to define a custom resource compatible lambda function that takes in information about the created resources (beanstalk env name, e.g) in order to find those resources through the aws API and apply any custom configurations. The example applies a custom scale-up/down policy that triggers on an SQS metric (available messages), which is not available from beanstalk out of the box.

Requirements

You'll need an AWS account set up and activated credentials with Admin privileges (this example doesn't engage meaningfully with permissions - it's just meant to be deployed and torn down).

Since beanstalk requires a URL for artifacts, you'll need to set up an S3 bucket that will be referenced later.

Finally, the deploy script (and cleanup command below) requires the awscli, which can be installed with pip:

$> pip install awscli

Usage

To deploy the stack, simply run:

$> ./infra/deploy.sh my_artifact_bucket

This will create a stack called lambda-bootstrap-stack in your AWS account and deploy a dummy beanstalk environment (and lambda).

Cleanup

When you're done inspecting the results, you can clean up by running:

$> aws cloudformation delete-stack --stack-name lambda-bootstrap-stack

About

Toy example with a bootstrap lambda function defined in a cloudformation template


Languages

Language:Python 90.2%Language:Shell 9.8%