-
Notifications
You must be signed in to change notification settings - Fork 2
/
diagram.py
32 lines (25 loc) · 1.17 KB
/
diagram.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from diagrams import Cluster, Diagram, Edge
from diagrams.aws.compute import Lambda
from diagrams.aws.security import SecretsManager
from diagrams.aws.management import CloudwatchEventTimeBased
from diagrams.saas.analytics import Snowflake
from diagrams.saas.chat import Slack
graph_attr = {"fontsize": "25", "center": "true"}
with Diagram("BatCAVE SDL Reporting Automation", direction="TB", graph_attr=graph_attr):
with Cluster("AWS"):
cron = CloudwatchEventTimeBased("Cron - Daily")
lambda_func = Lambda("BatCAVE SDL Lambda")
with Cluster("Secrets"):
slack_secret = SecretsManager("Slack Webhook")
snowflake_secret = SecretsManager("Snowflake Creds")
cron >> lambda_func
(
lambda_func
>> Edge(label="GetSecretValue", color="red", style="bold")
>> slack_secret
)
lambda_func >> Edge(label="GetSecretValue", color="red") >> snowflake_secret
snowflake = Snowflake("Security Data Lake")
slack = Slack("Slack")
lambda_func >> Edge(label="Execute Queries", color="green") >> snowflake
lambda_func >> Edge(label="POST report to webhook", color="green") >> slack