From dce7419209b2c9b713de81504168a0e388d54afd Mon Sep 17 00:00:00 2001 From: Zoe Wang <33073555+zoewangg@users.noreply.github.com> Date: Tue, 16 Dec 2025 17:57:47 -0800 Subject: [PATCH] Improve archetype-lambda --- .../feature-LambdaMavenArchetype-322edc3.json | 6 + archetypes/archetype-lambda/README.md | 32 +++--- .../META-INF/maven/archetype-metadata.xml | 3 + .../resources/archetype-resources/README.md | 4 +- .../resources/archetype-resources/pom.xml | 27 ++++- .../src/main/java/__handlerClassName__.java | 10 +- .../test/java/__handlerClassName__Test.java | 11 +- .../archetype-resources/template.yaml | 2 +- .../apachehttpclient/archetype.properties | 3 +- .../apachehttpclient/reference/README.md | 4 +- .../apachehttpclient/reference/pom.xml | 8 +- .../amazonaws/test/MyApacheFunction.java | 10 +- .../amazonaws/test/MyApacheFunctionTest.java | 11 +- .../apachehttpclient/reference/template.yaml | 2 +- .../projects/crtclient/archetype.properties | 1 + .../projects/crtclient/reference/README.md | 4 +- .../projects/crtclient/reference/pom.xml | 21 +++- .../amazonaws/test/MyCrtFunction.java | 10 +- .../amazonaws/test/MyCrtFunctionTest.java | 11 +- .../crtclient/reference/template.yaml | 2 +- .../archetype.properties | 3 +- .../dynamodbstreamsclient/reference/README.md | 4 +- .../dynamodbstreamsclient/reference/pom.xml | 8 +- .../test/MyDynamoDbStreamsFunction.java | 10 +- .../test/MyDynamoDbStreamsFunctionTest.java | 11 +- .../reference/template.yaml | 2 +- .../projects/nettyclient/archetype.properties | 1 + .../projects/nettyclient/reference/README.md | 4 +- .../projects/nettyclient/reference/pom.xml | 8 +- .../amazonaws/test/MyNettyFunction.java | 10 +- .../amazonaws/test/MyNettyFunctionTest.java | 11 +- .../nettyclient/reference/template.yaml | 2 +- .../urlhttpclient/archetype.properties | 3 +- .../urlhttpclient/reference/README.md | 4 +- .../projects/urlhttpclient/reference/pom.xml | 8 +- .../java/software/amazonaws/test/App.java | 10 +- .../java/software/amazonaws/test/AppTest.java | 11 +- .../urlhttpclient/reference/template.yaml | 2 +- .../wafregionalclient/archetype.properties | 25 ----- .../projects/wafregionalclient/goal.txt | 1 - .../wafregionalclient/reference/README.md | 45 -------- .../wafregionalclient/reference/pom.xml | 104 ------------------ .../amazonaws/test/DependencyFactory.java | 26 ----- .../amazonaws/test/MyWafRegionalFunction.java | 28 ----- .../test/MyWafRegionalFunctionTest.java | 15 --- .../wafregionalclient/reference/template.yaml | 19 ---- 46 files changed, 156 insertions(+), 401 deletions(-) create mode 100644 .changes/next-release/feature-LambdaMavenArchetype-322edc3.json delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/archetype.properties delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/goal.txt delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/README.md delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/pom.xml delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/DependencyFactory.java delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/MyWafRegionalFunction.java delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/test/java/software/amazonaws/test/MyWafRegionalFunctionTest.java delete mode 100644 archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/template.yaml diff --git a/.changes/next-release/feature-LambdaMavenArchetype-322edc3.json b/.changes/next-release/feature-LambdaMavenArchetype-322edc3.json new file mode 100644 index 000000000000..c5c5a587ee2d --- /dev/null +++ b/.changes/next-release/feature-LambdaMavenArchetype-322edc3.json @@ -0,0 +1,6 @@ +{ + "type": "feature", + "category": "Lambda Maven Archetype", + "contributor": "", + "description": "Various Java Lambda Maven archetype improvements: use Java 25, use platform specific AWS CRT dependency, bump dependency version, and improve README. See [#6115](https://github.com/aws/aws-sdk-java-v2/issues/6115)" +} diff --git a/archetypes/archetype-lambda/README.md b/archetypes/archetype-lambda/README.md index 5702a787b739..ff21b2744feb 100755 --- a/archetypes/archetype-lambda/README.md +++ b/archetypes/archetype-lambda/README.md @@ -2,11 +2,12 @@ ## Description This is an Apache Maven Archetype to create a lambda function template using [AWS Java SDK 2.x][aws-java-sdk-v2]. The generated template -has the optimized configurations and follows the best practices to reduce start up time. +has the optimized configurations and follows the best practices to reduce start up time. Please check out [AWS Dev Guide][aws-dev-guide] for more information. ## Usage You can use `mvn archetype:generate` to generate a project using this archetype. See [maven archetype usage guidance][maven-archetype-usage] for more information. +Note that you need to replace `${version}` with the latest SDK version found in [README.md](./README.md). - Interactive mode @@ -14,7 +15,7 @@ You can use `mvn archetype:generate` to generate a project using this archetype. mvn archetype:generate \ -DarchetypeGroupId=software.amazon.awssdk \ -DarchetypeArtifactId=archetype-lambda \ - -DarchetypeVersion=2.x + -DarchetypeVersion=${version} ``` - Batch mode @@ -23,7 +24,7 @@ mvn archetype:generate \ mvn archetype:generate \ -DarchetypeGroupId=software.amazon.awssdk \ -DarchetypeArtifactId=archetype-lambda \ - -DarchetypeVersion=2.x \ + -DarchetypeVersion=${version} \ -DgroupId=com.test \ -DartifactId=sample-project \ -Dservice=s3 \ @@ -31,18 +32,18 @@ mvn archetype:generate \ ``` ### Parameters - -Parameter Name | Default Value | Description ----|---|--- -`service` (required) | n/a | Specifies the service client to be used in the lambda function, eg: s3, dynamodb. You can find available services [here][java-sdk-v2-services]. -`groupId`(required) | n/a | Specifies the group ID of the project -`artifactId`(required) | n/a | Specifies the artifact ID of the project -`region` | n/a | Specifies the region to be set for the SDK client in the application -`httpClient` | url-connection-client | Specifies the http client to be used by the SDK client. Available options are `url-connection-client` (sync), `apache-client` (sync), `netty-nio-client` (async). See [http clients][sdk-http-clients] -`handlerClassName` | `"App"`| Specifies the class name of the handler, which will be used as the lambda function name. It should be camel case. -`javaSdkVersion` | Same version as the archetype version | Specifies the version of the AWS Java SDK 2.x to be used -`version` | 1.0-SNAPSHOT | Specifies the version of the project -`package` | ${groupId} | Specifies the package name for the classes + + Parameter Name | Default Value | Description +------------------------|---------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + `service` (required) | n/a | Specifies the service client to be used in the lambda function, eg: s3, dynamodb. You can find available services [here][java-sdk-v2-services]. + `groupId`(required) | n/a | Specifies the group ID of the project + `artifactId`(required) | n/a | Specifies the artifact ID of the project + `region` | n/a | Specifies the region to be set for the SDK client in the application + `httpClient` | aws-crt-client | Specifies the http client to be used by the SDK client. Available options are `url-connection-client` (sync), `apache-client` (sync), `netty-nio-client` (async) and `aws-crt-client`(async). See [http clients][sdk-http-clients] + `handlerClassName` | `"App"` | Specifies the class name of the handler, which will be used as the lambda function name. It should be camel case. + `javaSdkVersion` | Same version as the archetype version | Specifies the version of the AWS Java SDK 2.x to be used + `version` | 1.0-SNAPSHOT | Specifies the version of the project + `package` | ${groupId} | Specifies the package name for the classes ### Deployment @@ -62,3 +63,4 @@ Please refer to [deploying lambda apps][deploying-lambda-apps] for more info. [sam-cli]:https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html [maven-archetype-usage]: https://maven.apache.org/archetype/maven-archetype-plugin/usage.html [sam-template]: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html +[aws-dev-guide]: https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/lambda-optimize-starttime.html diff --git a/archetypes/archetype-lambda/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/archetype-lambda/src/main/resources/META-INF/maven/archetype-metadata.xml index 507c9e8262ff..0003e253faa5 100644 --- a/archetypes/archetype-lambda/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/archetypes/archetype-lambda/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -46,5 +46,8 @@ ${netty-open-ssl-version} + + ${awscrt.version} + diff --git a/archetypes/archetype-lambda/src/main/resources/archetype-resources/README.md b/archetypes/archetype-lambda/src/main/resources/archetype-resources/README.md index f8effbaa17ad..c5d82b79f37f 100644 --- a/archetypes/archetype-lambda/src/main/resources/archetype-resources/README.md +++ b/archetypes/archetype-lambda/src/main/resources/archetype-resources/README.md @@ -3,14 +3,14 @@ This project contains an AWS Lambda maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. #[[##]]# Prerequisites -- Java 1.8+ +- Java 25+ - Apache Maven - [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) - Docker #[[##]]# Development -The generated function handler class just returns the input. The configured AWS Java SDK client is created in `DependencyFactory` class and you can +The generated function handler class just returns empty string. The configured AWS Java SDK client is created in `DependencyFactory` class and you can add the code to interact with the SDK client based on your use case. #[[####]]# Building the project diff --git a/archetypes/archetype-lambda/src/main/resources/archetype-resources/pom.xml b/archetypes/archetype-lambda/src/main/resources/archetype-resources/pom.xml index 11ab338099ee..4df39b322787 100644 --- a/archetypes/archetype-lambda/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/archetype-lambda/src/main/resources/archetype-resources/pom.xml @@ -9,16 +9,19 @@ jar UTF-8 + 1.8 1.8 - 3.2.1 - 3.6.1 - 1.6.0 + 3.6.1 + 3.14.1 ${javaSdkVersion} - 1.2.3 + 1.4.0 5.10.1 #if( $httpClient == 'netty-nio-client') ${nettyOpenSslVersion} +#end +#if( $httpClient == 'aws-crt-client') + ${awsCrtVersion} #end @@ -53,8 +56,24 @@ software.amazon.awssdk ${httpClient} +#if( $httpClient == 'aws-crt-client') + + + software.amazon.awssdk.crt + aws-crt + + +#end +#if( $httpClient == 'aws-crt-client') + + software.amazon.awssdk.crt + aws-crt + ${aws.crt.version} + linux-x86_64 + +#end #if( $httpClient == 'netty-nio-client') diff --git a/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/main/java/__handlerClassName__.java b/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/main/java/__handlerClassName__.java index 8a66c4aa925d..b48b4949865c 100644 --- a/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/main/java/__handlerClassName__.java +++ b/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/main/java/__handlerClassName__.java @@ -2,7 +2,9 @@ package ${package}; import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; +import java.util.Map; import software.amazon.awssdk.services.${servicePackage}.${serviceClientClassName}; /** @@ -11,7 +13,7 @@ * * @see Lambda Java Handler for more information */ -public class ${handlerClassName} implements RequestHandler { +public class ${handlerClassName} implements RequestHandler, String> { private final ${serviceClientClassName} ${serviceClientVariable}Client; public ${handlerClassName}() { @@ -22,8 +24,10 @@ public class ${handlerClassName} implements RequestHandler { } @Override - public Object handleRequest(final Object input, final Context context) { + public String handleRequest(final Map input, final Context context) { + LambdaLogger lambdaLogger = context.getLogger(); + lambdaLogger.log("Start to handle request"); // TODO: invoking the api call using ${serviceClientVariable}Client. - return input; + return ""; } } diff --git a/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/test/java/__handlerClassName__Test.java b/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/test/java/__handlerClassName__Test.java index beecf7a3c67a..6ae7c6f28177 100644 --- a/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/test/java/__handlerClassName__Test.java +++ b/archetypes/archetype-lambda/src/main/resources/archetype-resources/src/test/java/__handlerClassName__Test.java @@ -3,16 +3,7 @@ #set( $symbol_escape = '\' ) package ${package}; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - public class ${handlerClassName}Test { - @Test - public void handleRequest_shouldReturnConstantValue() { - ${handlerClassName} function = new ${handlerClassName}(); - Object result = function.handleRequest("echo", null); - assertEquals("echo", result); - } + // TODO: Add your tests here } diff --git a/archetypes/archetype-lambda/src/main/resources/archetype-resources/template.yaml b/archetypes/archetype-lambda/src/main/resources/archetype-resources/template.yaml index 28847ba71c7b..7a0108bbb211 100644 --- a/archetypes/archetype-lambda/src/main/resources/archetype-resources/template.yaml +++ b/archetypes/archetype-lambda/src/main/resources/archetype-resources/template.yaml @@ -6,7 +6,7 @@ Resources: ${handlerClassName}Function: Type: AWS::Serverless::Function Properties: - Runtime: java17 + Runtime: java25 Handler: ${package}.${handlerClassName}::handleRequest Timeout: 60 MemorySize: 512 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/archetype.properties b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/archetype.properties index aad97f30a1f3..2b0d1dc899a1 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/archetype.properties +++ b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/archetype.properties @@ -7,4 +7,5 @@ httpClient=apache-client handlerClassName=MyApacheFunction region=us-west-2 javaSdkVersion=2.21.0 -nettyOpenSslVersion=2.0.29.Final \ No newline at end of file +nettyOpenSslVersion=2.0.29.Final +awsCrtVersion=0.40.3 \ No newline at end of file diff --git a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/README.md b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/README.md index 30bf8a316d7e..efc696d80836 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/README.md +++ b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/README.md @@ -3,14 +3,14 @@ This project contains an AWS Lambda maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. ## Prerequisites -- Java 1.8+ +- Java 25+ - Apache Maven - [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) - Docker ## Development -The generated function handler class just returns the input. The configured AWS Java SDK client is created in `DependencyFactory` class and you can +The generated function handler class just returns empty string. The configured AWS Java SDK client is created in `DependencyFactory` class and you can add the code to interact with the SDK client based on your use case. #### Building the project diff --git a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/pom.xml b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/pom.xml index 74f4405357dc..65fd3f59b5e1 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/pom.xml +++ b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/pom.xml @@ -8,13 +8,13 @@ jar UTF-8 + 1.8 1.8 - 3.2.1 - 3.6.1 - 1.6.0 + 3.6.1 + 3.14.1 2.21.0 - 1.2.3 + 1.4.0 5.10.1 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/main/java/software/amazonaws/test/MyApacheFunction.java b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/main/java/software/amazonaws/test/MyApacheFunction.java index 8f9f860811c6..cc580ff27af6 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/main/java/software/amazonaws/test/MyApacheFunction.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/main/java/software/amazonaws/test/MyApacheFunction.java @@ -1,7 +1,9 @@ package software.amazonaws.test; import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; +import java.util.Map; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; /** @@ -10,7 +12,7 @@ * * @see Lambda Java Handler for more information */ -public class MyApacheFunction implements RequestHandler { +public class MyApacheFunction implements RequestHandler, String> { private final DynamoDbClient dynamoDbClient; public MyApacheFunction() { @@ -21,8 +23,10 @@ public MyApacheFunction() { } @Override - public Object handleRequest(final Object input, final Context context) { + public String handleRequest(final Map input, final Context context) { + LambdaLogger lambdaLogger = context.getLogger(); + lambdaLogger.log("Start to handle request"); // TODO: invoking the api call using dynamoDbClient. - return input; + return ""; } } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/test/java/software/amazonaws/test/MyApacheFunctionTest.java b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/test/java/software/amazonaws/test/MyApacheFunctionTest.java index b55287348392..b269d979df00 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/test/java/software/amazonaws/test/MyApacheFunctionTest.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/test/java/software/amazonaws/test/MyApacheFunctionTest.java @@ -1,15 +1,6 @@ package software.amazonaws.test; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - public class MyApacheFunctionTest { - @Test - public void handleRequest_shouldReturnConstantValue() { - MyApacheFunction function = new MyApacheFunction(); - Object result = function.handleRequest("echo", null); - assertEquals("echo", result); - } + // TODO: Add your tests here } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/template.yaml b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/template.yaml index 3c9a904981b0..41e3d27ca913 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/template.yaml +++ b/archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/template.yaml @@ -6,7 +6,7 @@ Resources: MyApacheFunctionFunction: Type: AWS::Serverless::Function Properties: - Runtime: java17 + Runtime: java25 Handler: software.amazonaws.test.MyApacheFunction::handleRequest Timeout: 60 MemorySize: 512 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/archetype.properties b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/archetype.properties index 2723591d7886..30d0756273c8 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/archetype.properties +++ b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/archetype.properties @@ -8,4 +8,5 @@ handlerClassName=MyCrtFunction region=us-east-1 javaSdkVersion=2.21.0 nettyOpenSslVersion=2.0.29.Final +awsCrtVersion=0.40.3 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/README.md b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/README.md index b0ebf3f7c331..db89944f113a 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/README.md +++ b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/README.md @@ -3,14 +3,14 @@ This project contains an AWS Lambda maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. ## Prerequisites -- Java 1.8+ +- Java 25+ - Apache Maven - [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) - Docker ## Development -The generated function handler class just returns the input. The configured AWS Java SDK client is created in `DependencyFactory` class and you can +The generated function handler class just returns empty string. The configured AWS Java SDK client is created in `DependencyFactory` class and you can add the code to interact with the SDK client based on your use case. #### Building the project diff --git a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/pom.xml b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/pom.xml index c661e52e2224..0c78d1f103fc 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/pom.xml +++ b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/pom.xml @@ -8,14 +8,15 @@ jar UTF-8 + 1.8 1.8 - 3.2.1 - 3.6.1 - 1.6.0 + 3.6.1 + 3.14.1 2.21.0 - 1.2.3 + 1.4.0 5.10.1 + 0.40.3 @@ -49,8 +50,20 @@ software.amazon.awssdk aws-crt-client + + + software.amazon.awssdk.crt + aws-crt + + + + software.amazon.awssdk.crt + aws-crt + ${aws.crt.version} + linux-x86_64 + com.amazonaws aws-lambda-java-core diff --git a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/main/java/software/amazonaws/test/MyCrtFunction.java b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/main/java/software/amazonaws/test/MyCrtFunction.java index 16ca3d377315..8e8dbe702e75 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/main/java/software/amazonaws/test/MyCrtFunction.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/main/java/software/amazonaws/test/MyCrtFunction.java @@ -1,7 +1,9 @@ package software.amazonaws.test; import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; +import java.util.Map; import software.amazon.awssdk.services.s3.S3AsyncClient; /** @@ -10,7 +12,7 @@ * * @see Lambda Java Handler for more information */ -public class MyCrtFunction implements RequestHandler { +public class MyCrtFunction implements RequestHandler, String> { private final S3AsyncClient s3Client; public MyCrtFunction() { @@ -21,8 +23,10 @@ public MyCrtFunction() { } @Override - public Object handleRequest(final Object input, final Context context) { + public String handleRequest(final Map input, final Context context) { + LambdaLogger lambdaLogger = context.getLogger(); + lambdaLogger.log("Start to handle request"); // TODO: invoking the api call using s3Client. - return input; + return ""; } } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/test/java/software/amazonaws/test/MyCrtFunctionTest.java b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/test/java/software/amazonaws/test/MyCrtFunctionTest.java index 21f92ce12ff6..5b812ddadf6d 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/test/java/software/amazonaws/test/MyCrtFunctionTest.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/src/test/java/software/amazonaws/test/MyCrtFunctionTest.java @@ -1,15 +1,6 @@ package software.amazonaws.test; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - public class MyCrtFunctionTest { - @Test - public void handleRequest_shouldReturnConstantValue() { - MyCrtFunction function = new MyCrtFunction(); - Object result = function.handleRequest("echo", null); - assertEquals("echo", result); - } + // TODO: Add your tests here } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/template.yaml b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/template.yaml index 07df5eb8d1d5..8c962cea2dd5 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/template.yaml +++ b/archetypes/archetype-lambda/src/test/resources/projects/crtclient/reference/template.yaml @@ -6,7 +6,7 @@ Resources: MyCrtFunctionFunction: Type: AWS::Serverless::Function Properties: - Runtime: java17 + Runtime: java25 Handler: software.amazonaws.test.MyCrtFunction::handleRequest Timeout: 60 MemorySize: 512 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/archetype.properties b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/archetype.properties index 17a81a4eb688..35cc2bf2c137 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/archetype.properties +++ b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/archetype.properties @@ -22,4 +22,5 @@ httpClient=apache-client handlerClassName=MyDynamoDbStreamsFunction region=ap-southeast-1 javaSdkVersion=2.21.0 -nettyOpenSslVersion=2.0.29.Final \ No newline at end of file +nettyOpenSslVersion=2.0.29.Final +awsCrtVersion=0.40.3 \ No newline at end of file diff --git a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/README.md b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/README.md index 2fc00d2e4ac0..d3bb7a2165b7 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/README.md +++ b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/README.md @@ -3,14 +3,14 @@ This project contains an AWS Lambda maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. ## Prerequisites -- Java 1.8+ +- Java 25+ - Apache Maven - [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) - Docker ## Development -The generated function handler class just returns the input. The configured AWS Java SDK client is created in `DependencyFactory` class and you can +The generated function handler class just returns empty string. The configured AWS Java SDK client is created in `DependencyFactory` class and you can add the code to interact with the SDK client based on your use case. #### Building the project diff --git a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/pom.xml b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/pom.xml index e8142e9a7b90..5fc5b0b78201 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/pom.xml +++ b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/pom.xml @@ -8,13 +8,13 @@ jar UTF-8 + 1.8 1.8 - 3.2.1 - 3.6.1 - 1.6.0 + 3.6.1 + 3.14.1 2.21.0 - 1.2.3 + 1.4.0 5.10.1 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/main/java/software/amazonaws/test/MyDynamoDbStreamsFunction.java b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/main/java/software/amazonaws/test/MyDynamoDbStreamsFunction.java index 2722fbfdba68..a492421fb505 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/main/java/software/amazonaws/test/MyDynamoDbStreamsFunction.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/main/java/software/amazonaws/test/MyDynamoDbStreamsFunction.java @@ -1,7 +1,9 @@ package software.amazonaws.test; import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; +import java.util.Map; import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient; /** @@ -10,7 +12,7 @@ * * @see Lambda Java Handler for more information */ -public class MyDynamoDbStreamsFunction implements RequestHandler { +public class MyDynamoDbStreamsFunction implements RequestHandler, String> { private final DynamoDbStreamsClient dynamoDbStreamsClient; public MyDynamoDbStreamsFunction() { @@ -21,8 +23,10 @@ public MyDynamoDbStreamsFunction() { } @Override - public Object handleRequest(final Object input, final Context context) { + public String handleRequest(final Map input, final Context context) { + LambdaLogger lambdaLogger = context.getLogger(); + lambdaLogger.log("Start to handle request"); // TODO: invoking the api call using dynamoDbStreamsClient. - return input; + return ""; } } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/test/java/software/amazonaws/test/MyDynamoDbStreamsFunctionTest.java b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/test/java/software/amazonaws/test/MyDynamoDbStreamsFunctionTest.java index 7553684cf11a..145b40d6180b 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/test/java/software/amazonaws/test/MyDynamoDbStreamsFunctionTest.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/src/test/java/software/amazonaws/test/MyDynamoDbStreamsFunctionTest.java @@ -1,15 +1,6 @@ package software.amazonaws.test; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - public class MyDynamoDbStreamsFunctionTest { - @Test - public void handleRequest_shouldReturnConstantValue() { - MyDynamoDbStreamsFunction function = new MyDynamoDbStreamsFunction(); - Object result = function.handleRequest("echo", null); - assertEquals("echo", result); - } + // TODO: Add your tests here } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/template.yaml b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/template.yaml index a95d14c736d9..6760446f98d6 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/template.yaml +++ b/archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/template.yaml @@ -6,7 +6,7 @@ Resources: MyDynamoDbStreamsFunctionFunction: Type: AWS::Serverless::Function Properties: - Runtime: java17 + Runtime: java25 Handler: software.amazonaws.test.MyDynamoDbStreamsFunction::handleRequest Timeout: 60 MemorySize: 512 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/archetype.properties b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/archetype.properties index 8a907f301363..80ff2f98fa61 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/archetype.properties +++ b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/archetype.properties @@ -8,4 +8,5 @@ handlerClassName=MyNettyFunction region=us-east-1 javaSdkVersion=2.21.0 nettyOpenSslVersion=2.0.29.Final +awsCrtVersion=0.40.3 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/README.md b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/README.md index e265f49bbdc4..6477f823ae76 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/README.md +++ b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/README.md @@ -3,14 +3,14 @@ This project contains an AWS Lambda maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. ## Prerequisites -- Java 1.8+ +- Java 25+ - Apache Maven - [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) - Docker ## Development -The generated function handler class just returns the input. The configured AWS Java SDK client is created in `DependencyFactory` class and you can +The generated function handler class just returns empty string. The configured AWS Java SDK client is created in `DependencyFactory` class and you can add the code to interact with the SDK client based on your use case. #### Building the project diff --git a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/pom.xml b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/pom.xml index 199b9cc10c23..cc9f5e118dd5 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/pom.xml +++ b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/pom.xml @@ -8,13 +8,13 @@ jar UTF-8 + 1.8 1.8 - 3.2.1 - 3.6.1 - 1.6.0 + 3.6.1 + 3.14.1 2.21.0 - 1.2.3 + 1.4.0 5.10.1 2.0.29.Final diff --git a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/main/java/software/amazonaws/test/MyNettyFunction.java b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/main/java/software/amazonaws/test/MyNettyFunction.java index 0016c30c56e0..bee3faa497bb 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/main/java/software/amazonaws/test/MyNettyFunction.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/main/java/software/amazonaws/test/MyNettyFunction.java @@ -1,7 +1,9 @@ package software.amazonaws.test; import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; +import java.util.Map; import software.amazon.awssdk.services.kinesis.KinesisAsyncClient; /** @@ -10,7 +12,7 @@ * * @see Lambda Java Handler for more information */ -public class MyNettyFunction implements RequestHandler { +public class MyNettyFunction implements RequestHandler, String> { private final KinesisAsyncClient kinesisClient; public MyNettyFunction() { @@ -21,8 +23,10 @@ public MyNettyFunction() { } @Override - public Object handleRequest(final Object input, final Context context) { + public String handleRequest(final Map input, final Context context) { + LambdaLogger lambdaLogger = context.getLogger(); + lambdaLogger.log("Start to handle request"); // TODO: invoking the api call using kinesisClient. - return input; + return ""; } } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/test/java/software/amazonaws/test/MyNettyFunctionTest.java b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/test/java/software/amazonaws/test/MyNettyFunctionTest.java index 46e9272647aa..a909176cec17 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/test/java/software/amazonaws/test/MyNettyFunctionTest.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/src/test/java/software/amazonaws/test/MyNettyFunctionTest.java @@ -1,15 +1,6 @@ package software.amazonaws.test; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - public class MyNettyFunctionTest { - @Test - public void handleRequest_shouldReturnConstantValue() { - MyNettyFunction function = new MyNettyFunction(); - Object result = function.handleRequest("echo", null); - assertEquals("echo", result); - } + // TODO: Add your tests here } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/template.yaml b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/template.yaml index b665d80fc983..cad4790b776b 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/template.yaml +++ b/archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/template.yaml @@ -6,7 +6,7 @@ Resources: MyNettyFunctionFunction: Type: AWS::Serverless::Function Properties: - Runtime: java17 + Runtime: java25 Handler: software.amazonaws.test.MyNettyFunction::handleRequest Timeout: 60 MemorySize: 512 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/archetype.properties b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/archetype.properties index 215ce1a2a347..dddda5c4c914 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/archetype.properties +++ b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/archetype.properties @@ -7,4 +7,5 @@ httpClient=url-connection-client handlerClassName=App region=us-west-2 javaSdkVersion=2.21.0 -nettyOpenSslVersion=2.0.29.Final \ No newline at end of file +nettyOpenSslVersion=2.0.29.Final +awsCrtVersion=0.40.3 \ No newline at end of file diff --git a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/README.md b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/README.md index 6b17a7840213..5487ecdd4619 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/README.md +++ b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/README.md @@ -3,14 +3,14 @@ This project contains an AWS Lambda maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. ## Prerequisites -- Java 1.8+ +- Java 25+ - Apache Maven - [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) - Docker ## Development -The generated function handler class just returns the input. The configured AWS Java SDK client is created in `DependencyFactory` class and you can +The generated function handler class just returns empty string. The configured AWS Java SDK client is created in `DependencyFactory` class and you can add the code to interact with the SDK client based on your use case. #### Building the project diff --git a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/pom.xml b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/pom.xml index 2bbebafcb2ba..1c6acd1b1da7 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/pom.xml +++ b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/pom.xml @@ -8,13 +8,13 @@ jar UTF-8 + 1.8 1.8 - 3.2.1 - 3.6.1 - 1.6.0 + 3.6.1 + 3.14.1 2.21.0 - 1.2.3 + 1.4.0 5.10.1 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/main/java/software/amazonaws/test/App.java b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/main/java/software/amazonaws/test/App.java index 3d3588fee28a..f388f4054f90 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/main/java/software/amazonaws/test/App.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/main/java/software/amazonaws/test/App.java @@ -1,7 +1,9 @@ package software.amazonaws.test; import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; +import java.util.Map; import software.amazon.awssdk.services.s3.S3Client; /** @@ -10,7 +12,7 @@ * * @see Lambda Java Handler for more information */ -public class App implements RequestHandler { +public class App implements RequestHandler, String> { private final S3Client s3Client; public App() { @@ -21,8 +23,10 @@ public App() { } @Override - public Object handleRequest(final Object input, final Context context) { + public String handleRequest(final Map input, final Context context) { + LambdaLogger lambdaLogger = context.getLogger(); + lambdaLogger.log("Start to handle request"); // TODO: invoking the api call using s3Client. - return input; + return ""; } } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/test/java/software/amazonaws/test/AppTest.java b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/test/java/software/amazonaws/test/AppTest.java index 8400b37496b7..774f7f7623f4 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/test/java/software/amazonaws/test/AppTest.java +++ b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/src/test/java/software/amazonaws/test/AppTest.java @@ -1,15 +1,6 @@ package software.amazonaws.test; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - public class AppTest { - @Test - public void handleRequest_shouldReturnConstantValue() { - App function = new App(); - Object result = function.handleRequest("echo", null); - assertEquals("echo", result); - } + // TODO: Add your tests here } diff --git a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/template.yaml b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/template.yaml index 18e2d0deb753..2f624a91bead 100644 --- a/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/template.yaml +++ b/archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/template.yaml @@ -6,7 +6,7 @@ Resources: AppFunction: Type: AWS::Serverless::Function Properties: - Runtime: java17 + Runtime: java25 Handler: software.amazonaws.test.App::handleRequest Timeout: 60 MemorySize: 512 diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/archetype.properties b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/archetype.properties deleted file mode 100644 index 6ed452610197..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/archetype.properties +++ /dev/null @@ -1,25 +0,0 @@ -# -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). -# You may not use this file except in compliance with the License. -# A copy of the License is located at -# -# http://aws.amazon.com/apache2.0 -# -# or in the "license" file accompanying this file. This file is distributed -# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -# express or implied. See the License for the specific language governing -# permissions and limitations under the License. -# - -groupId=software.amazonaws.test -artifactId=test-wafregional-artifact -version=1.0-SNAPSHOT -package=software.amazonaws.test -service=wafregional -httpClient=apache-client -handlerClassName=MyWafRegionalFunction -region=ap-southeast-1 -javaSdkVersion=2.21.0 -nettyOpenSslVersion=2.0.29.Final \ No newline at end of file diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/goal.txt b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/goal.txt deleted file mode 100644 index 4a1a71d3364c..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/goal.txt +++ /dev/null @@ -1 +0,0 @@ -verify \ No newline at end of file diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/README.md b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/README.md deleted file mode 100644 index cdff80c819bd..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# MyWafRegionalFunction - -This project contains an AWS Lambda maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. - -## Prerequisites -- Java 1.8+ -- Apache Maven -- [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) -- Docker - -## Development - -The generated function handler class just returns the input. The configured AWS Java SDK client is created in `DependencyFactory` class and you can -add the code to interact with the SDK client based on your use case. - -#### Building the project -``` -mvn clean install -``` - -#### Testing it locally -``` -sam local invoke -``` - -#### Adding more SDK clients -To add more service clients, you need to add the specific services modules in `pom.xml` and create the clients in `DependencyFactory` following the same -pattern as wafRegionalClient. - -## Deployment - -The generated project contains a default [SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) file `template.yaml` where you can -configure different properties of your lambda function such as memory size and timeout. You might also need to add specific policies to the lambda function -so that it can access other AWS resources. - -To deploy the application, you can run the following command: - -``` -sam deploy --guided -``` - -See [Deploying Serverless Applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-deploying.html) for more info. - - - diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/pom.xml b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/pom.xml deleted file mode 100644 index 6648beb0ac94..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - 4.0.0 - - software.amazonaws.test - test-wafregional-artifact - 1.0-SNAPSHOT - jar - - UTF-8 - 1.8 - 1.8 - 3.2.1 - 3.6.1 - 1.6.0 - 2.21.0 - 1.2.3 - 5.10.1 - - - - - - software.amazon.awssdk - bom - ${aws.java.sdk.version} - pom - import - - - - - - - software.amazon.awssdk - waf - - - software.amazon.awssdk - netty-nio-client - - - software.amazon.awssdk - apache-client - - - - - - software.amazon.awssdk - apache-client - - - - com.amazonaws - aws-lambda-java-core - ${aws.lambda.java.version} - - - - - org.junit.jupiter - junit-jupiter - ${junit5.version} - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven.compiler.plugin.version} - - - org.apache.maven.plugins - maven-shade-plugin - ${maven.shade.plugin.version} - - false - test-wafregional-artifact - - - *:* - - - module-info.class - - - - - - - package - - shade - - - - - - - diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/DependencyFactory.java b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/DependencyFactory.java deleted file mode 100644 index 31bacbfa33ef..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/DependencyFactory.java +++ /dev/null @@ -1,26 +0,0 @@ - -package software.amazonaws.test; - -import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider; -import software.amazon.awssdk.http.apache.ApacheHttpClient; -import software.amazon.awssdk.regions.Region; -import software.amazon.awssdk.services.waf.regional.WafRegionalClient; - -/** - * The module containing all dependencies required by the {@link MyWafRegionalFunction}. - */ -public class DependencyFactory { - - private DependencyFactory() {} - - /** - * @return an instance of WafRegionalClient - */ - public static WafRegionalClient wafRegionalClient() { - return WafRegionalClient.builder() - .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) - .region(Region.AP_SOUTHEAST_1) - .httpClientBuilder(ApacheHttpClient.builder()) - .build(); - } -} diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/MyWafRegionalFunction.java b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/MyWafRegionalFunction.java deleted file mode 100644 index 9f02b456977a..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/main/java/software/amazonaws/test/MyWafRegionalFunction.java +++ /dev/null @@ -1,28 +0,0 @@ -package software.amazonaws.test; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import software.amazon.awssdk.services.waf.regional.WafRegionalClient; - -/** - * Lambda function entry point. You can change to use other pojo type or implement - * a different RequestHandler. - * - * @see Lambda Java Handler for more information - */ -public class MyWafRegionalFunction implements RequestHandler { - private final WafRegionalClient wafRegionalClient; - - public MyWafRegionalFunction() { - // Initialize the SDK client outside of the handler method so that it can be reused for subsequent invocations. - // It is initialized when the class is loaded. - wafRegionalClient = DependencyFactory.wafRegionalClient(); - // Consider invoking a simple api here to pre-warm up the application, eg: dynamodb#listTables - } - - @Override - public Object handleRequest(final Object input, final Context context) { - // TODO: invoking the api call using wafRegionalClient. - return input; - } -} diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/test/java/software/amazonaws/test/MyWafRegionalFunctionTest.java b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/test/java/software/amazonaws/test/MyWafRegionalFunctionTest.java deleted file mode 100644 index adc0157faf76..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/src/test/java/software/amazonaws/test/MyWafRegionalFunctionTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package software.amazonaws.test; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - -public class MyWafRegionalFunctionTest { - - @Test - public void handleRequest_shouldReturnConstantValue() { - MyWafRegionalFunction function = new MyWafRegionalFunction(); - Object result = function.handleRequest("echo", null); - assertEquals("echo", result); - } -} diff --git a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/template.yaml b/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/template.yaml deleted file mode 100644 index f2c0e30feb79..000000000000 --- a/archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/template.yaml +++ /dev/null @@ -1,19 +0,0 @@ -AWSTemplateFormatVersion: '2010-09-09' -Transform: AWS::Serverless-2016-10-31 -Resources: - # See https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html - # for more info to see how to tune the lambda function configs based on your use case. - MyWafRegionalFunctionFunction: - Type: AWS::Serverless::Function - Properties: - Runtime: java17 - Handler: software.amazonaws.test.MyWafRegionalFunction::handleRequest - Timeout: 60 - MemorySize: 512 - CodeUri: ./target/test-wafregional-artifact.jar - # Attach policies here to give the function permission to access other AWS resources if needed - # See: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst - # eg: - #Policies: - # - S3ReadPolicy: - # BucketName: test-bucket \ No newline at end of file