From 5eec90baa1f0d4f50a705bc0df89a9f2a062861b Mon Sep 17 00:00:00 2001 From: 205762370+Rob9786 <205762370+Rob9786@users.noreply.github.com> Date: Mon, 3 Aug 2026 08:54:42 +0000 Subject: [PATCH 1/2] 7782: Add dependency to lambda --- .../main/java/sleeper/cdk/stack/SleeperCoreStacks.java | 5 +++-- .../sleeper/cdk/stack/core/AutoDeleteS3ObjectsStack.java | 9 ++++++--- .../main/java/sleeper/cdk/stack/query/QueryStack.java | 5 ++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/SleeperCoreStacks.java b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/SleeperCoreStacks.java index 2187de0715c..dc83ca52823 100644 --- a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/SleeperCoreStacks.java +++ b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/SleeperCoreStacks.java @@ -19,6 +19,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import software.amazon.awscdk.CustomResource; import software.amazon.awscdk.Stack; import software.amazon.awscdk.services.cloudwatch.IMetric; import software.amazon.awscdk.services.ec2.ISubnet; @@ -240,8 +241,8 @@ public void grantReadTablesStatus(IGrantable grantee) { tableIndexStack.grantRead(grantee); } - public void addAutoDeleteS3Objects(Construct scope, IBucket bucket) { - autoDeleteS3Stack.addAutoDeleteS3Objects(scope, bucket); + public CustomResource addAutoDeleteS3Objects(Construct scope, IBucket bucket) { + return autoDeleteS3Stack.addAutoDeleteS3Objects(scope, bucket); } public void addAutoStopEcsClusterTasksAfterTaskCreatorIsDeleted(Construct scope, ICluster cluster, IFunction taskCreator) { diff --git a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/core/AutoDeleteS3ObjectsStack.java b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/core/AutoDeleteS3ObjectsStack.java index 4e2468a7618..8899d7e171f 100644 --- a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/core/AutoDeleteS3ObjectsStack.java +++ b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/core/AutoDeleteS3ObjectsStack.java @@ -91,10 +91,11 @@ private void createLambda(InstanceProperties instanceProperties, SleeperInstance /** * Adds a custom resource to delete a bucket's contents. * - * @param scope the stack to add the custom resource to - * @param bucket the bucket to delete from + * @param scope the stack to add the custom resource to + * @param bucket the bucket to delete from + * @return a custom resource */ - public void addAutoDeleteS3Objects(Construct scope, IBucket bucket) { + public CustomResource addAutoDeleteS3Objects(Construct scope, IBucket bucket) { String id = bucket.getNode().getId() + "-AutoDelete"; @@ -105,6 +106,8 @@ public void addAutoDeleteS3Objects(Construct scope, IBucket bucket) { .build(); customResource.getNode().addDependency(bucket); + + return customResource; } } diff --git a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java index a1368da03e7..508976ec3a1 100644 --- a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java +++ b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java @@ -18,6 +18,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import software.amazon.awscdk.CfnOutput; import software.amazon.awscdk.CfnOutputProps; +import software.amazon.awscdk.CustomResource; import software.amazon.awscdk.Duration; import software.amazon.awscdk.NestedStack; import software.amazon.awscdk.RemovalPolicy; @@ -83,6 +84,7 @@ public class QueryStack extends NestedStack { private IFunction queryExecutorLambda; private IFunction leafPartitionQueryLambda; + private CustomResource customResource; public QueryStack(Construct scope, String id, @@ -185,6 +187,7 @@ private IFunction setupLeafPartitionQueryQueueAndLambda( .batchSize(1) .build(); + lambda.getNode().addDependency(customResource); lambda.addEventSource(new SqsEventSource(leafPartitionQueryQueue, eventSourceProps)); return lambda; @@ -306,7 +309,7 @@ private IBucket setupResultsBucket(InstanceProperties instanceProperties, Sleepe instanceProperties.set(CdkDefinedInstanceProperty.QUERY_RESULTS_BUCKET, resultsBucket.getBucketName()); if (removalPolicy == RemovalPolicy.DESTROY) { - coreStacks.addAutoDeleteS3Objects(this, resultsBucket); + customResource = coreStacks.addAutoDeleteS3Objects(this, resultsBucket); } return resultsBucket; From e3771834d9beebbefbedcc70ad90ed20e0ddc6cc Mon Sep 17 00:00:00 2001 From: 205762370+Rob9786 <205762370+Rob9786@users.noreply.github.com> Date: Mon, 3 Aug 2026 09:42:29 +0000 Subject: [PATCH 2/2] 7782: Added null check wrapper around add dependency --- .../cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java index 508976ec3a1..5ed0aa54747 100644 --- a/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java +++ b/java/deployment/cdk/src/main/java/sleeper/cdk/stack/query/QueryStack.java @@ -187,7 +187,9 @@ private IFunction setupLeafPartitionQueryQueueAndLambda( .batchSize(1) .build(); - lambda.getNode().addDependency(customResource); + if (customResource != null) { + lambda.getNode().addDependency(customResource); + } lambda.addEventSource(new SqsEventSource(leafPartitionQueryQueue, eventSourceProps)); return lambda;