Skip to content

Commit 9b81024

Browse files
author
Yuriy Bezsonov
committed
WIP: refactoring
1 parent ae1dbff commit 9b81024

5 files changed

Lines changed: 798 additions & 1081 deletions

File tree

infrastructure/cdk/src/main/java/com/unicorn/IdeStack.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class IdeStack extends Stack {
2323
date
2424
2525
echo '=== Clone Git repository ==='bash
26-
sudo -H -u ec2-user -c "git clone https://github.com/smoell/java-on-aws ~/java-on-aws/"
26+
sudo -H -u ec2-user bash -c "git clone https://github.com/aws-samples/java-on-aws ~/java-on-aws/"
2727
# sudo -H -u ec2-user bash -c "cd ~/java-on-aws && git checkout refactoring"
2828
2929
echo '=== Setup IDE ==='

infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreStack.java

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -86,30 +86,11 @@ public UnicornStoreStack(final Construct scope, final String id) {
8686
var ideRole = ideProps.getRole();
8787
var ideInternalSecurityGroup = ide.getIdeInternalSecurityGroup();
8888

89-
// Create S3 bucket for thread dumps
90-
AnalysisBucketConstruct analysisBucket = new AnalysisBucketConstruct(
91-
this,
92-
"ThreadDumpBucket",
93-
AnalysisBucketProps.builder()
94-
.bucketPrefix("unicorn-analysis")
95-
.versioningEnabled(true)
96-
.retentionDays(90)
97-
.noncurrentVersionRetentionDays(30)
98-
.removalPolicy(RemovalPolicy.DESTROY)
99-
.build()
100-
);
101-
10289
// Create EKS cluster for the workshop
10390
var eksCluster = new EksCluster(this, "UnicornStoreEksCluster", "unicorn-store", "1.33",
10491
vpc, ideInternalSecurityGroup);
10592
eksCluster.createAccessEntry(ideRole.getRoleArn(), "unicorn-store", "unicornstore-ide-user");
10693

107-
// Create Lambda function to create thread dump
108-
InfrastructureLambdaBedrock lambdaBedrock = new InfrastructureLambdaBedrock(this, "InfrastructureLambdaBedrock", this.getRegion(), analysisBucket.getBucket(), eksCluster, vpc);
109-
110-
// Create Prometheus und Grafana infrastructure
111-
MonitoringConstruct monitoring = new MonitoringConstruct(this, "Monitoring", vpc, eksCluster.getCluster(), lambdaBedrock.getThreadDumpFunction()); // Create Grafana dashboards
112-
11394
// Create Core infrastructure
11495
var infrastructureCore = new InfrastructureCore(this, "InfrastructureCore", vpc);
11596
// var accountId = Stack.of(this).getAccount();
@@ -118,12 +99,16 @@ public UnicornStoreStack(final Construct scope, final String id) {
11899
new InfrastructureContainers(this, "InfrastructureContainers", infrastructureCore);
119100
new InfrastructureEks(this, "InfrastructureEks", infrastructureCore);
120101

102+
// Create Lambda function to create thread dump (after InfrastructureEks)
103+
InfrastructureLambdaBedrock lambdaBedrock = new InfrastructureLambdaBedrock(this, "InfrastructureLambdaBedrock", this.getRegion(), infrastructureCore.getWorkshopBucket(), eksCluster, vpc);
104+
105+
// Create Prometheus and Grafana infrastructure. Create Grafana dashboards (after InfrastructureEks)
106+
MonitoringConstruct monitoring = new MonitoringConstruct(this, "Monitoring", vpc, eksCluster.getCluster(), lambdaBedrock.getThreadDumpFunction());
107+
121108
// Execute Database setup
122109
var databaseSetup = new DatabaseSetup(this, "UnicornStoreDatabaseSetup", infrastructureCore);
123110
databaseSetup.getNode().addDependency(infrastructureCore.getDatabase());
124111

125-
String bucketName = analysisBucket.getBucket().getBucketName();
126-
127112
// Create UnicornStoreSpringLambda
128113
new UnicornStoreSpringLambda(this, "UnicornStoreSpringLambda", infrastructureCore);
129114

infrastructure/cdk/src/main/java/com/unicorn/core/AnalysisBucketConstruct.java

Lines changed: 0 additions & 73 deletions
This file was deleted.

infrastructure/cdk/src/main/java/com/unicorn/core/InfrastructureCore.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import software.amazon.awscdk.services.ec2.ISecurityGroup;
1010
import software.amazon.awscdk.services.ec2.SecurityGroupProps;
1111
import software.amazon.awscdk.services.events.EventBus;
12-
import software.amazon.awscdk.services.iam.ArnPrincipal;
13-
import software.amazon.awscdk.services.iam.Effect;
1412
import software.amazon.awscdk.services.iam.ManagedPolicy;
15-
import software.amazon.awscdk.services.iam.PolicyStatement;
1613
import software.amazon.awscdk.services.iam.Role;
1714
import software.amazon.awscdk.services.iam.ServicePrincipal;
1815
import software.amazon.awscdk.services.rds.AuroraPostgresClusterEngineProps;
@@ -44,8 +41,8 @@ public class InfrastructureCore extends Construct {
4441
private final ISecurityGroup applicationSecurityGroup;
4542
private final StringParameter paramDBConnectionString;
4643
private final Secret secretPassword;
47-
private final StringParameter paramBucketName;
48-
private final Bucket lambdaCodeBucket;
44+
private final StringParameter parameterWorkshopBucketName;
45+
private final Bucket workshopBucket;
4946

5047
public InfrastructureCore(final Construct scope, final String id, final IVpc vpc) {
5148
super(scope, id);
@@ -64,34 +61,34 @@ public InfrastructureCore(final Construct scope, final String id, final IVpc vpc
6461

6562
paramDBConnectionString = createParamDBConnectionString();
6663
secretPassword = createSecretPassword();
67-
lambdaCodeBucket = createLambdaCodeBucket();
68-
paramBucketName = createParamBucketName();
64+
workshopBucket = createWorkshopBucket();
65+
parameterWorkshopBucketName = createParameterWorkshopBucketName();
6966
createRolesLambdaBedrock();
7067
}
7168

72-
private Bucket createLambdaCodeBucket() {
73-
var lambdaCodeBucket = Bucket.Builder
74-
.create(this, "LambdaCodeBucket")
69+
private Bucket createWorkshopBucket() {
70+
var workshopBucket = Bucket.Builder
71+
.create(this, "WorkshopBucket")
7572
.blockPublicAccess(BlockPublicAccess.BLOCK_ALL)
7673
.enforceSsl(true)
7774
.removalPolicy(RemovalPolicy.DESTROY)
7875
.build();
79-
return lambdaCodeBucket;
76+
return workshopBucket;
8077
}
8178

8279

83-
private StringParameter createParamBucketName() {
84-
return StringParameter.Builder.create(this, "SsmParameterUnicornStoreBucketName")
80+
private StringParameter createParameterWorkshopBucketName() {
81+
return StringParameter.Builder.create(this, "SsmParameterWorkshopBucketName")
8582
.allowedPattern(".*")
86-
.description("Lambda code bucket name")
83+
.description("Workshop bucket name")
8784
.parameterName("unicornstore-lambda-bucket-name")
88-
.stringValue(lambdaCodeBucket.getBucketName())
85+
.stringValue(workshopBucket.getBucketName())
8986
.tier(ParameterTier.STANDARD)
9087
.build();
9188
}
9289

9390
public StringParameter getParamBucketName() {
94-
return paramBucketName;
91+
return parameterWorkshopBucketName;
9592
}
9693

9794
private void createRolesLambdaBedrock() {
@@ -224,4 +221,8 @@ public DatabaseSecret getDatabaseSecret(){
224221
public DatabaseCluster getDatabase() {
225222
return database;
226223
}
224+
225+
public Bucket getWorkshopBucket() {
226+
return workshopBucket;
227+
}
227228
}

0 commit comments

Comments
 (0)