-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
54 lines (44 loc) · 2.41 KB
/
app.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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import os
import aws_cdk as cdk
from aws_cdk import Environment, Tags
from stack_params_config.stack_ssm_config import SsmParametersStack
from stack_lambda_datagen.lambda_datagen_stack import ScootersDataStack
from stack_s3.s3_stack import S3Stack
from stack_vpc_neptune.vpc_neptune_stack import VpcNeptuneStack
# AWS Settings
app = cdk.App()
env_aws_settings = Environment(account=os.environ['CDK_DEFAULT_ACCOUNT'], region=os.environ['CDK_DEFAULT_REGION'])
# Add environment to deploy (see cdk.json file). CLI: cdk deploy --context <<env-production>>
env_context_params = app.node.try_get_context("env-production")
# Optional, so you can store above's parameters in AWS Systems Manager SSM instead
stack_ssm = SsmParametersStack(app, "ScootersSsmParametersStack",
input_metadata=env_context_params,
env=env_aws_settings,
description="Graph Demo: optional, so you can store Context parameters in SSM instead."
)
# Amazon S3 bucket for Graph data
stack_s3 = S3Stack(app, "ScootersS3Stack",
input_metadata=env_context_params,
env=env_aws_settings,
description="Graph Demo: Amazon S3 bucket to store the Graph data."
)
# AWS Lambda stack to create the Graph data generator
stack_lambda_datagen = ScootersDataStack(app, "ScootersDataStack",
input_metadata=env_context_params,
env=env_aws_settings,
description="Graph Demo: Lambda stack to create the Graph data generator."
)
# Amazon Neptune cluster and VPC stack
stack_vpc_neptune = VpcNeptuneStack(app, "ScootersNeptuneStack",
input_metadata=env_context_params,
env=env_aws_settings,
description="Graph Demo: Amazon Neptune cluster and VPC (uksb-79abqvzsoy)."
)
# Stack dependencies
stack_lambda_datagen.add_dependency(stack_s3)
stack_vpc_neptune.add_dependency(stack_s3)
# Tagging all stacks:
Tags.of(stack_s3).add("project", "scooters-demo/stack-s3")
Tags.of(stack_lambda_datagen).add("project", "scooters-demo/stack-lambda-datagen")
Tags.of(stack_vpc_neptune).add("project", "scooters-demo/stack-vpc-neptune")
app.synth()