Skip to content

Convert Cloudformation JSON to AWS CDK TypeScript

Notifications You must be signed in to change notification settings

noahbroyles/cfntocdk

 
 

Repository files navigation

CFN to CDK

Experimental. Translates Cloudformation JSON to AWS CDK TypeScript. Understands parameters, cross-resource references, AWS functions & pseudo-parameters.

Usage (assuming node.js 10 or newer):

git clone https://github.com/mipearson/cfntocdk.git
cd cfntocdk
npm i && npm build && npm link
npx cfntocdk MyStack mystack.json > mystack.ts

Run the integration tests to see working examples:

npm i --dev
npm run jest
ls tmp/*.ts

Type errors are expected in the output at this stage: you'll need to clean them up by hand.

Valid CloudFormation can generated invalid CDK: CDK is much stricter about numbers being numbers, and outputs can't have the same name as resources.

TODO:

  • Parameters are referenced as parameter.value, which is almost always a type error even though it generates the "correct" stack. Remember what type of parameter we have and attempt to cast it appropriately.

  • Conditions almost always lead to type errors. Add a "--as-any-conditions" option to allow generation of code that'll produce less typing errors for prototyping.

  • Only integration tests exist today, making testing edge cases very difficult. Add unit tests.

About

Convert Cloudformation JSON to AWS CDK TypeScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.0%
  • JavaScript 2.0%