Amazon Custom Resources contains a number of CloudFormation Custom Resources backed by Lambda functions. They simplify the usage of CloudFormation by, among other things, allowing us to use names instead of IDs in our templates. This simplifies the re-use of templates across Amazon accounts.
lambda-with-config-and-vpc-support A Lambda function which implements a Custom Resource for CloudFormation thatdeploys lambdas together with config files and supports deploying your lambda in a VPC.
When CloudFormation creates a Redis-backed Elasticache Cluster it does not provide the endpoints to the stack. This forces us to write logic in the client to look up the endpoints or to look them up manually and provide them as configuration. elasticache-dependency gets information about elasticache clusters including endpoints.
image-dependency looks up information about an AMI by name. It is much easier to read an image name instead of an AMI ID.
route53-dependency looks up information about hosted zone by domin name. Again, nicer to have that a cryptic zone id.
vpc-dependencylooks up information about a VPC by name including ID and subnet information.
certificate-dependency looks up a certificate by name.
stack-dependency looks up the outputs from
another stack by name. It provides the outputs as variables to the resources
and also includes an extra property called Environment
.
The Environment
property contains all the ouputs from the stack formatted as
a Unix env-file
, (Property1=Value\nProperty2=Value\n)
. This can be used to
provide the parameters to the instance by saving them to an environment file
and, if you use Docker, to provide them to the container with docker run --env-file
echo-dependency returns its inputs as outputs. Can be used to force an update of a stack.
kms-dependency is used to decrypt a secret before it is used in cloudformation, i.e when creating a RDS db with cloudformation.
vpc-nat-gateway-dependency enables Internet access for a Lambda inside a VPC by creating necessary VPC resources such as NAT Gateway, Route Tables, Routes etc.
sns-subscription is used to create a SNS subscription to an already existing SNS topic.
# git clone the repo
# Select any region, for example eu-central-1
export REGION=eu-central-1
./init.sh
./deploy-all.sh