Skip to content

Implode your AWS CDK Stack after set amount of time, save money, be happy!

License

Notifications You must be signed in to change notification settings

jmb12686/cdk-time-bomb

Repository files navigation

cdk-time-bomb

npm version PyPI Version Nuget

Implode your AWS CDK Stack after set amount of time, save money, be happy!

Usage

JavaScript / TypeScript

In your Typescipt / Javascript AWS CDK project, add the cdk-time-bomb module:

npm install cdk-time-bomb

Import the module and instantiate in your CDK Stack class. Specify a TTL Duration after which time the entire CloudFormation stack will self destroy:

import { SelfDestruct} from 'cdk-time-bomb';
const selfDestruct = new SelfDestruct(this, "selfDestructor", {
  timeToLive: Duration.minutes(60)
});

Be sure to add an ordering dependency on a high level base Construct in your stack. For example anchoring SelfDestruct to the Vpc ensures all resources in the stack will be destroyed prior to destroying itself.

const vpc = new ec2.Vpc(this, "VPC", {
});

vpc.node.addDependency(selfDestruct);

Python

Install using pip

pip install cdk-time-bomb

Java

Follow the guide for configuring maven for use with Github Packages. Then add the following to your project's pom.xml

<dependency>
  <groupId>jmb12686.cdk</groupId>
  <artifactId>timebomb</artifactId>
  <version>1.50.0</version>
</dependency>

How to build this construct

Due to the large amount of dependencies required by jsii, use the docker image udondan/jsii-publish to reliably and consistenly build this CDK construct.

docker run -it \
    --workdir /workdir \
    --volume $(pwd):/workdir \
    --env VERSION=0.3.0 \
    --env BUILD_SOURCE=true \
    --env BUILD_PACKAGES=true \
    --env NPM_TOKEN \
    --env PYPI_TOKEN \
    --env NUGET_TOKEN \
    --env GITHUB_TOKEN \
    --env GITHUB_REPOSITORY="${OWNER}/${REPOSITORY}" \
    udondan/jsii-publish:0.8.3