digraph G {
newrank=true;
rankdir=LR;
compound=true;
graph [fontname = "Handlee"];
node [fontname = "Handlee"];
edge [fontname = "Handlee"];
bgcolor=transparent;
{
rank=same;
route53;
lambda_edge;
invis;
acm;
}
lambda_edge -> apigw [ltail=cluster_cloudfront];
apigw -> mangum;
mangum -> cloudwatch [
ltail=cluster_lambda;
];
s3 -> datasette [
dir=back;
lhead=cluster_lambda;
style=dotted;
];
lambda_edge -> route53 [
style=dotted;
dir=back;
label=" ";
ltail=cluster_cloudfront;
];
invis [
shape=none;
label="";
height=0;
];
acm -> invis [
style=dotted;
arrowhead=none;
];
invis -> lambda_edge [
style=dotted;
lhead=cluster_cloudfront;
label="";
];
acm [
label="AWS Cert.\nManager";
];
route53 [
label = "Route 53";
];
apigw [
label="API\nGateway";
];
s3 [
shape=cylinder;
label="S3";
];
cloudwatch [
label="CloudWatch\nLogs";
];
subgraph cluster_cloudfront {
label="CloudFront";
lambda_edge [
label="Lambda@Edge\nAdd X-Forwarded-Host";
shape=none;
fontsize=8;
];
};
subgraph cluster_lambda {
label=Lambda;
{
rank=same;
mangum;
datasette;
}
mangum -> datasette;
};
}