|
22 | 22 | import static software.amazon.awscdk.services.iam.ManagedPolicy.fromAwsManagedPolicyName; |
23 | 23 | import static software.amazon.awscdk.services.lambda.Code.fromAsset; |
24 | 24 |
|
25 | | -import com.coffeebeans.cdk.core.AbstractApp; |
26 | 25 | import com.coffeebeans.cdk.core.AbstractEnvironment; |
27 | | -import com.coffeebeans.cdk.core.construct.BaseStack; |
28 | 26 | import com.coffeebeans.cdk.core.construct.dynamodb.TableV2; |
29 | 27 | import com.coffeebeans.cdk.core.construct.dynamodb.TableV2.TableProps; |
30 | 28 | import com.coffeebeans.cdk.core.construct.lambda.CustomRuntime2023Function; |
|
36 | 34 | import javax.validation.constraints.NotBlank; |
37 | 35 | import org.apache.commons.lang3.StringUtils; |
38 | 36 | import org.jetbrains.annotations.NotNull; |
| 37 | +import software.amazon.awscdk.DefaultStackSynthesizer; |
39 | 38 | import software.amazon.awscdk.Duration; |
| 39 | +import software.amazon.awscdk.RemovalPolicy; |
| 40 | +import software.amazon.awscdk.Stack; |
| 41 | +import software.amazon.awscdk.StackProps; |
40 | 42 | import software.amazon.awscdk.services.apigateway.LambdaRestApi; |
41 | 43 | import software.amazon.awscdk.services.apigateway.Resource; |
42 | 44 | import software.amazon.awscdk.services.apigateway.StageOptions; |
43 | 45 | import software.amazon.awscdk.services.dynamodb.Attribute; |
44 | 46 | import software.amazon.awscdk.services.dynamodb.AttributeType; |
45 | | -import software.amazon.awscdk.services.iam.IGrantable; |
46 | 47 | import software.amazon.awscdk.services.iam.IManagedPolicy; |
47 | 48 | import software.amazon.awscdk.services.iam.Role; |
48 | 49 | import software.amazon.awscdk.services.iam.ServicePrincipal; |
49 | 50 | import software.amazon.awscdk.services.lambda.AssetCode; |
50 | 51 | import software.amazon.awscdk.services.lambda.Function; |
51 | 52 |
|
52 | | -public class SpringNativeAwsFunctionStack extends BaseStack { |
| 53 | +public class SpringNativeAwsFunctionStack extends Stack { |
53 | 54 |
|
54 | 55 | private static final int LAMBDA_FUNCTION_TIMEOUT_IN_SECONDS = 3; |
55 | 56 | private static final int LAMBDA_FUNCTION_MEMORY_SIZE = 512; |
56 | 57 | private static final int LAMBDA_FUNCTION_RETRY_ATTEMPTS = 2; |
57 | 58 | private static final String LAMBDA_HANDLER = "org.springframework.cloud.function.adapter.aws.FunctionInvoker::handleRequest"; |
58 | 59 | private static final String ENVIRONMENT_VARIABLE_SPRING_PROFILES_ACTIVE = "SPRING_PROFILES_ACTIVE"; |
59 | 60 |
|
60 | | - |
61 | | - public SpringNativeAwsFunctionStack(@NotNull final AbstractApp app, |
| 61 | + public SpringNativeAwsFunctionStack(@NotNull final Application app, |
62 | 62 | @NotNull final AbstractEnvironment environment, |
63 | 63 | @NotBlank final String lambdaCodePath, |
64 | 64 | @NotBlank final String stage) { |
65 | | - super(app, environment); |
| 65 | + super(app, "SpringNativeAwsFunctionStack", |
| 66 | + StackProps.builder().synthesizer(DefaultStackSynthesizer.Builder.create().qualifier("cbcore").build()).build()); |
66 | 67 |
|
67 | 68 | final List<IManagedPolicy> managedPolicies = |
68 | 69 | List.of(fromAwsManagedPolicyName("service-role/AWSLambdaBasicExecutionRole")); |
@@ -95,6 +96,7 @@ public SpringNativeAwsFunctionStack(@NotNull final AbstractApp app, |
95 | 96 | .partitionKey(Attribute.builder().name("id").type(AttributeType.STRING).build()) |
96 | 97 | .timeToLiveAttribute("creationTime") |
97 | 98 | .tableName(KebabCaseString.of("secrets")) |
| 99 | + .removalPolicy(RemovalPolicy.RETAIN_ON_UPDATE_OR_DELETE) |
98 | 100 | .build(); |
99 | 101 |
|
100 | 102 | final software.amazon.awscdk.services.dynamodb.TableV2 tableV2 = new TableV2(this, SafeString.of("Table"), tableProps).getTable(); |
|
0 commit comments