Generate dot files for GraphViz from an AWS CloudFormation template.
Clone or download
Latest commit bd8a7de Aug 21, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin fix stuff Jun 21, 2017
lib add support for string style Fn::GetAtt Dec 29, 2017
test fixes cli Jun 13, 2017
.gitignore update to return dot data instead of file Jun 13, 2017
LICENSE license update Jun 13, 2017
README.md update readme Jun 15, 2017
index.js bump version number Aug 21, 2018
package-lock.json bump version number Aug 21, 2018
package.json bump version number Aug 21, 2018
version-history.md bump version number Aug 21, 2018

README.md

CloudFormation Graph

This project was adapted from CFVIZ. Serverless Graph outputs your serverless architecture and resources as a Graphviz dot compatible output. Currently only supports the AWS provider.

Example Output

Example Generated Graph

Why?

Sometimes this is the fastest way to just visualize everything going on, it can also be extremely helpful in debugging circular dependency issues in CloudFormation templates.

Get Started

  • npm install --save cloudformation-graph
  • Install graphviz
    • Homebrew - brew install graphviz

Run

If you have any commandline params that don't have defaults you will have to pass in any opt variables as this plugin hooks into the package step and then reads the output.

  • cfn-graph {--opts} > graph.out
  • Output SVG
    • cat graph.out | dot -Tsvg -oexample.svg
  • Output PNG
    • cat graph.out | dot -Tpng -oexample.png
  • See Graphviz for more information.

Options (--help)

CloudFormation Graph
============================================================
Usage Examples:

cfn-grah path-to-file.json [--horizontal|-h] [--edgelabels|-e]
cfn-graph 'VALID_JSON_TEMPALTE' [--horizontal|-h] [--edgelabels|-e]

# IT IS A KNOWN PROBLEM THAT !Sub or !Ref syntax is not supported
cfn-grah path-to-file.yaml     (expiremental) [--horizontal|-h] [--edgelabels|-e]
cfn-graph 'VALID_YML_TEMPLATE' (expiremental) [--horizontal|-h] [--edgelabels|-e]

cat template.json | cfg [--horizontal|-h] [--edgelabels|-e]

Using the Serverless Framework?

We already bundled this as a plugin for Serverless, checkout https://github.com/trek10inc/serverless-graph.