cdk-from-cfn v0.198.0
cdk-from-cfn
cdk-from-cfn
is a command-line tool that converts AWS CloudFormation templates into AWS CDK code. It supports multiple programming languages including TypeScript, Python, Java, Go, and C#.
Installation
$ cargo install cdk-from-cfn
Usage
$ cdk-from-cfn [INPUT] [OUTPUT] --language <LANGUAGE> --stack-name <STACK_NAME>
INPUT
is the input file path (STDIN by default).OUTPUT
is the output file path; if not specified, output will be printed on your command line (STDOUT by default).
Node.js Module Usage
cdk-from-cfn leverages WebAssembly (WASM) bindings to provide a cross-platform npm module, which exposes apis to be used in Node.js projects. Simply take a dependency on cdk-from-cfn
in your package.json and utilize it as you would a normal module. i.e.
import * as cdk_from_cfn from 'cdk-from-cfn';
// get supported languages
cdk_from_cfn.supported_languages();
// transmute cfn template into cdk app
cdk_from_cfn.transmute(template, language, stackName)
Language and Feature support
Name | Enabled by default | Description |
---|---|---|
typescript | :heavy_check_mark: | Enables support for TypeScript output |
golang | :heavy_check_mark: | Enables support for Go output |
java | :heavy_check_mark: | Enables support for Java output |
Python | :heavy_check_mark: | Enables support for Python output |
csharp | :heavy_check_mark: | Enables support for C# output |
You can enable experimental languages (not enabled by default) by enabling the relevant feature:
$ cargo build --release --features=<feature-name>
Finished release [optimized] target(s) in 0.17s
If you want to disable on-by-default languages, you can pass --no-default-features
:
$ cargo build --release --no-default-features --features=golang
Finished release [optimized] target(s) in 0.17s
Implemented
- Fn::FindInMap
- Fn::Join
- Fn::Sub
- Ref
- Fn::And
- Fn::Equals
- Fn::If
- Fn::Not
- Fn::Or
- Fn::GetAtt
- Fn::Base64 support
- Fn::ImportValue support
- Fn::Select support
- Resource ordering based on dependencies
- Conditions are emitted in ts but not attached to resource conditions
- Metadata emission for updates to asgs / lambda functions.
- Emission of outputs / exports
- Fn::GetAZs support
- Adding depends-on, and ordering based on it too.
- Deletion policy
- Fn::Cidr support
Remaining
There are known unsupported features. Working on them in priority order:
- Create policy
- ssm metadata references
- secretsmanager references
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago