aws-serverless-dataflow is a command line tool that can help visualsing the connections and dataflows among various AWS serverless components, such as AWS Lambda, API Gateway, SNS, SQS, etc. It surveys the serverless components in your AWS account, and then generates static website content that can be hosted on a website for viewing the diagrams.
The generated visual representation can help users to understand the architecture and data flow of their serverless application, and identify any issues or opportunities for optimisation.
Please note that this tool is not provided or endorsed by AWS, and if you want it to utilise your AWS credentials and configurations stored under ~/.aws
, you will need to explictly grant it the permission to do so either through GUI or sudo snap connect aws-serverless-dataflow:dot-aws-config-credentials
.
Quick start
Try something like this:
$ aws-serverless-dataflow -r ap-southeast-2 -i '*boi*' -i '*datahub*' -x '*jameshu*' -c -s
Surveyed 11/42 domains in API Gateway
Surveyed 72/224 queues in SQS
Surveyed 48/209 topics in SNS
Surveyed 65/250 subscriptions in SNS
Surveyed 100/1115 stacks in CloudFormation
Surveyed 98 REST APIs and 54 HTTP APIs in API Gateway
(1/2) Surveying API Gateway, SQS, SNS and CloudFormation... done
Surveyed 85/410 buckets in S3
Surveyed 120/464 functions in Lambda
(2/2) Surveying S3 and Lambda... done
Finished survey in 72.672 seconds
Generating static website content in 'dataflow'... done
Local server started. Ctrl-C to stop. Access URL: http://localhost:8002/
And you should be able to see the diagram in your browser.
For more information on how to use aws-serverless-dataflow and the available options and arguments, visit https://github.com/james-hu/aws-serverless-dataflow or run the aws-serverless-dataflow --help
command.
Usage
USAGE
$ aws-serverless-dataflow [PATH] [-v] [-h] [-r <value>] [-i
<value>] [-x <value>] [-c] [-s] [-p <value>] [-l <value>] [-q] [-d]
ARGUMENTS
PATH [default: dataflow] path for putting generated website files
FLAGS
-c, --cloud-formation survey CloudFormation stack information (this takes
more time)
-d, --debug output debug messages
-h, --help Show CLI help.
-i, --include=<value>... [default: *] wildcard patterns for domain names and
ARN of Lambda functions/SNS topics/SQS queues that
should be includeed
-l, --parallelism=<value> [default: 4] approximately how many AWS API calls
are allowed at the same time
-p, --port=<value> [default: 8002] port number of the local http
server for preview
-q, --quiet no console output
-r, --region=<value> AWS region (required if you don't have AWS_REGION
environment variable configured)
-s, --server start a local http server and open a browser for
pre-viewing generated website
-v, --version Show CLI version.
-x, --exclude=<value>... wildcard patterns for domain names and ARN of
Lambda functions/SNS topics/SQS queues that should
be excluded
EXAMPLES
$ aws-serverless-dataflow -r ap-southeast-2 -s
$ aws-serverless-dataflow -r ap-southeast-2 -s -i '*boi*' -i '*datahub*' \
-x '*jameshu*' -c
$ aws-serverless-dataflow -r ap-southeast-2 -s -i '*lr-*' \
-i '*lead*' -x '*slack*' -x '*lead-prioritization*' \
-x '*lead-scor*' -x '*LeadCapture*' -c