https://github.com/awsdataarchitect/waf-custom-lens-automation
Open-source code for automating the AWS Well-Architected Tool using a Custom Lens
https://github.com/awsdataarchitect/waf-custom-lens-automation
Last synced: 10 months ago
JSON representation
Open-source code for automating the AWS Well-Architected Tool using a Custom Lens
- Host: GitHub
- URL: https://github.com/awsdataarchitect/waf-custom-lens-automation
- Owner: awsdataarchitect
- License: mit
- Created: 2024-05-20T04:52:51.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-31T03:18:20.000Z (about 2 years ago)
- Last Synced: 2025-05-30T16:32:08.140Z (about 1 year ago)
- Language: Python
- Size: 18.7 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Automating the AWS Well-Architected Tool using a Custom Lens
# Architecture Diagram
* `mmdc -i diagram.mmd -t dark -b transparent --cssFile flowchart1.css -o diagram.png`
```mermaid
graph TD;
A[S3 Bucket] -->|S3 Event Notification| B[Lambda Function];
B -->|Process JSON| C[AWS Well-Architected Tool];
B -->|Download JSON| A;
B -.->|Assume Role| D[IAM Role];
D --> B;
X[User] --> |File Upload| A[S3 Bucket];
C -->|Create Workload| E[Workload];
C -->|Apply Lens| F[Lens Review];
C -->|Answer Questions| G[Question Answers];
C -->|Generate Report| H[Report PDF in S3];
H -->|Uploaded Report| A;
H -->|Send Notification| I[SNS Topic];
```
# Usage
1. To upload the custom lens:
* `aws s3 cp custom_lens.json s3://well-architect-custom-lens-demo/`
2. To upload the answers, create workload, reivew answers and generate Well-Architected PDF Report:
* `aws s3 cp answers.json s3://well-architect-custom-lens-demo/`
The `cdk.json` file tells the CDK Toolkit how to execute your app.
## Useful commands
* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npm run test` perform the jest unit tests
* `npx cdk deploy` deploy this stack to your default AWS account/region
* `npx cdk diff` compare deployed stack with current state
* `npx cdk synth` emits the synthesized CloudFormation template