Implode your AWS CDK Stack after set amount of time, save money, be happy!
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);
Install using pip
pip install cdk-time-bomb
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>
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