@@ -20,7 +20,7 @@ public class InfrastructureContainers extends Construct {
2020 private final InfrastructureCore infrastructureCore ;
2121
2222 public InfrastructureContainers (final Construct scope , final String id ,
23- final InfrastructureCore infrastructureCore ) {
23+ final InfrastructureCore infrastructureCore ) {
2424 super (scope , id );
2525
2626 // Get previously created infrastructure construct
@@ -34,68 +34,77 @@ public InfrastructureContainers(final Construct scope, final String id,
3434
3535 private Repository createUnicornStoreSpringEcr () {
3636 return Repository .Builder .create (this , "UnicornStoreSpringEcr" )
37- .repositoryName ("unicorn-store-spring" )
38- .imageScanOnPush (false )
39- .removalPolicy (RemovalPolicy .DESTROY )
40- .emptyOnDelete (true ) // This will force delete all images when repository is deleted
41- .build ();
37+ .repositoryName ("unicorn-store-spring" )
38+ .imageScanOnPush (false )
39+ .removalPolicy (RemovalPolicy .DESTROY )
40+ .emptyOnDelete (true ) // This will force delete all images when repository is deleted
41+ .build ();
4242 }
4343
4444 private void createVpcConnector () {
4545 VpcConnector .Builder .create (this , "UnicornStoreVpcConnector" )
46- .vpc (infrastructureCore .getVpc ())
47- .vpcSubnets (SubnetSelection .builder ()
48- .subnetType (SubnetType .PRIVATE_WITH_EGRESS )
49- .build ())
50- .vpcConnectorName ("unicornstore-vpc-connector" )
51- .build ();
46+ .vpc (infrastructureCore .getVpc ())
47+ .vpcSubnets (SubnetSelection .builder ()
48+ .subnetType (SubnetType .PRIVATE_WITH_EGRESS )
49+ .build ())
50+ .vpcConnectorName ("unicornstore-vpc-connector" )
51+ .build ();
5252 }
5353
5454 private void createRolesAppRunner () {
5555 var unicornStoreApprunnerRole = Role .Builder .create (this , "UnicornStoreApprunnerRole" )
56- .roleName ("unicornstore-apprunner-role" )
57- .assumedBy (new ServicePrincipal ("tasks.apprunner.amazonaws.com" )).build ();
56+ .roleName ("unicornstore-apprunner-role" )
57+ .assumedBy (new ServicePrincipal ("tasks.apprunner.amazonaws.com" )).build ();
5858 unicornStoreApprunnerRole .addToPolicy (PolicyStatement .Builder .create ()
59- .actions (List .of ("xray:PutTraceSegments" ))
60- .resources (List .of ("*" ))
61- .build ());
59+ .actions (List .of ("xray:PutTraceSegments" ))
60+ .resources (List .of ("*" ))
61+ .build ());
6262 infrastructureCore .getEventBridge ().grantPutEventsTo (unicornStoreApprunnerRole );
6363 infrastructureCore .getDatabaseSecret ().grantRead (unicornStoreApprunnerRole );
6464 infrastructureCore .getSecretPassword ().grantRead (unicornStoreApprunnerRole );
6565 infrastructureCore .getParamDBConnectionString ().grantRead (unicornStoreApprunnerRole );
6666
6767 var appRunnerECRAccessRole = Role .Builder .create (this , "UnicornStoreApprunnerEcrAccessRole" )
68- .roleName ("unicornstore-apprunner-ecr-access-role" )
69- .assumedBy (new ServicePrincipal ("build.apprunner.amazonaws.com" )).build ();
68+ .roleName ("unicornstore-apprunner-ecr-access-role" )
69+ .assumedBy (new ServicePrincipal ("build.apprunner.amazonaws.com" )).build ();
7070 appRunnerECRAccessRole .addManagedPolicy (ManagedPolicy .fromManagedPolicyArn (this ,
71- "UnicornStoreApprunnerEcrAccessRole-" + "AWSAppRunnerServicePolicyForECRAccess" ,
72- "arn:aws:iam::aws:policy/service-role/AWSAppRunnerServicePolicyForECRAccess" ));
71+ "UnicornStoreApprunnerEcrAccessRole-" + "AWSAppRunnerServicePolicyForECRAccess" ,
72+ "arn:aws:iam::aws:policy/service-role/AWSAppRunnerServicePolicyForECRAccess" ));
73+
74+ // // Create the App Runner service-linked role
75+ // Long tsLong = System.currentTimeMillis()/1000;
76+ // String timestamp = tsLong.toString();
77+ // CfnServiceLinkedRole appRunnerServiceLinkedRole = CfnServiceLinkedRole.Builder.create(this, "AppRunnerServiceLinkedRole")
78+ // .awsServiceName("apprunner.amazonaws.com")
79+ // .description("Service-linked role for AWS App Runner service")
80+ // .customSuffix(timestamp)
81+ // .build();
7382 }
7483
7584 private void createRolesEcs () {
7685 var AWSOpenTelemetryPolicy = PolicyStatement .Builder .create ()
77- .effect (Effect .ALLOW )
78- .actions (List .of ("logs:PutLogEvents" , "logs:CreateLogGroup" , "logs:CreateLogStream" ,
79- "logs:DescribeLogStreams" , "logs:DescribeLogGroups" ,
80- "logs:PutRetentionPolicy" , "xray:PutTraceSegments" ,
81- "xray:PutTelemetryRecords" , "xray:GetSamplingRules" ,
82- "xray:GetSamplingTargets" , "xray:GetSamplingStatisticSummaries" ,
83- "cloudwatch:PutMetricData" , "ssm:GetParameters" ))
84- .resources (List .of ("*" )).build ();
86+ .effect (Effect .ALLOW )
87+ .actions (List .of ("logs:PutLogEvents" , "logs:CreateLogGroup" , "logs:CreateLogStream" ,
88+ "logs:DescribeLogStreams" , "logs:DescribeLogGroups" ,
89+ "logs:PutRetentionPolicy" , "xray:PutTraceSegments" ,
90+ "xray:PutTelemetryRecords" , "xray:GetSamplingRules" ,
91+ "xray:GetSamplingTargets" , "xray:GetSamplingStatisticSummaries" ,
92+ "cloudwatch:PutMetricData" , "ssm:GetParameters" ))
93+ .resources (List .of ("*" )).build ();
8594
8695 var unicornStoreEscTaskRole = Role .Builder .create (this , "UnicornStoreEcsTaskRole" )
87- .roleName ("unicornstore-ecs-task-role" )
88- .assumedBy (new ServicePrincipal ("ecs-tasks.amazonaws.com" )).build ();
96+ .roleName ("unicornstore-ecs-task-role" )
97+ .assumedBy (new ServicePrincipal ("ecs-tasks.amazonaws.com" )).build ();
8998 unicornStoreEscTaskRole .addToPolicy (PolicyStatement .Builder .create ()
90- .actions (List .of ("xray:PutTraceSegments" ))
91- .resources (List .of ("*" ))
92- .build ());
99+ .actions (List .of ("xray:PutTraceSegments" ))
100+ .resources (List .of ("*" ))
101+ .build ());
93102 unicornStoreEscTaskRole .addManagedPolicy (ManagedPolicy .fromManagedPolicyArn (this ,
94- "UnicornStoreEcsTaskRole-" + "CloudWatchLogsFullAccess" ,
95- "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ));
103+ "UnicornStoreEcsTaskRole-" + "CloudWatchLogsFullAccess" ,
104+ "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ));
96105 unicornStoreEscTaskRole .addManagedPolicy (ManagedPolicy .fromManagedPolicyArn (this ,
97- "UnicornStoreEcsTaskRole-" + "AmazonSSMReadOnlyAccess" ,
98- "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess" ));
106+ "UnicornStoreEcsTaskRole-" + "AmazonSSMReadOnlyAccess" ,
107+ "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess" ));
99108 unicornStoreEscTaskRole .addToPolicy (AWSOpenTelemetryPolicy );
100109
101110 infrastructureCore .getEventBridge ().grantPutEventsTo (unicornStoreEscTaskRole );
@@ -104,21 +113,21 @@ private void createRolesEcs() {
104113 infrastructureCore .getParamDBConnectionString ().grantRead (unicornStoreEscTaskRole );
105114
106115 Role unicornStoreEscTaskExecutionRole = Role .Builder .create (this , "UnicornStoreEcsTaskExecutionRole" )
107- .roleName ("unicornstore-ecs-task-execution-role" )
108- .assumedBy (new ServicePrincipal ("ecs-tasks.amazonaws.com" )).build ();
116+ .roleName ("unicornstore-ecs-task-execution-role" )
117+ .assumedBy (new ServicePrincipal ("ecs-tasks.amazonaws.com" )).build ();
109118 unicornStoreEscTaskExecutionRole .addToPolicy (PolicyStatement .Builder .create ()
110- .actions (List .of ("logs:CreateLogGroup" ))
111- .resources (List .of ("*" ))
112- .build ());
119+ .actions (List .of ("logs:CreateLogGroup" ))
120+ .resources (List .of ("*" ))
121+ .build ());
113122 unicornStoreEscTaskExecutionRole .addManagedPolicy (ManagedPolicy .fromManagedPolicyArn (this ,
114- "UnicornStoreEcsTaskExecutionRole-" + "AmazonECSTaskExecutionRolePolicy" ,
115- "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy" ));
123+ "UnicornStoreEcsTaskExecutionRole-" + "AmazonECSTaskExecutionRolePolicy" ,
124+ "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy" ));
116125 unicornStoreEscTaskExecutionRole .addManagedPolicy (ManagedPolicy .fromManagedPolicyArn (this ,
117- "UnicornStoreEcsTaskExecutionRole-" + "CloudWatchLogsFullAccess" ,
118- "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ));
126+ "UnicornStoreEcsTaskExecutionRole-" + "CloudWatchLogsFullAccess" ,
127+ "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ));
119128 unicornStoreEscTaskExecutionRole .addManagedPolicy (ManagedPolicy .fromManagedPolicyArn (this ,
120- "UnicornStoreEcsTaskExecutionRole-" + "AmazonSSMReadOnlyAccess" ,
121- "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess" ));
129+ "UnicornStoreEcsTaskExecutionRole-" + "AmazonSSMReadOnlyAccess" ,
130+ "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess" ));
122131 unicornStoreEscTaskExecutionRole .addToPolicy (AWSOpenTelemetryPolicy );
123132
124133 infrastructureCore .getEventBridge ().grantPutEventsTo (unicornStoreEscTaskExecutionRole );
0 commit comments