Skip to content

Commit 704a6c8

Browse files
committed
Update archetype-lambda to generate the client that uses region from environment variable
1 parent c3b07ab commit 704a6c8

File tree

12 files changed

+80
-13
lines changed

12 files changed

+80
-13
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"category": "AWS Maven Lambda Archetype",
3+
"type": "feature",
4+
"description": "Updated the `archetype-lambda` to generate SDK client that uses region from environment variable."
5+
}

archetypes/archetype-lambda/README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ You can use `mvn archetype:generate` to generate a project using this archetype.
1414
mvn archetype:generate \
1515
-DarchetypeGroupId=software.amazon.awssdk \
1616
-DarchetypeArtifactId=archetype-lambda \
17-
-DarchetypeVersion=2.x\
17+
-DarchetypeVersion=2.x
1818
```
1919

2020
- Batch mode
@@ -23,22 +23,21 @@ mvn archetype:generate \
2323
mvn archetype:generate \
2424
-DarchetypeGroupId=software.amazon.awssdk \
2525
-DarchetypeArtifactId=archetype-lambda \
26-
-DarchetypeVersion=2.x\
26+
-DarchetypeVersion=2.x \
2727
-DgroupId=com.test \
2828
-DartifactId=sample-project \
2929
-Dservice=s3 \
30-
-Dregion=us-west-2 \
31-
-DinteractiveMode=false \
30+
-DinteractiveMode=false
3231
```
3332

3433
### Parameters
3534
3635
Parameter Name | Default Value | Description
3736
---|---|---
3837
`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].
39-
`region` (required) | n/a | Specifies the region to be set for the SDK client in the application
4038
`groupId`(required) | n/a | Specifies the group ID of the project
4139
`artifactId`(required) | n/a | Specifies the artifact ID of the project
40+
`region` | n/a | Specifies the region to be set for the SDK client in the application
4241
`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]
4342
`handlerClassName` | `"App"`| Specifies the class name of the handler, which will be used as the lambda function name. It should be camel case.
4443
`javaSdkVersion` | Same version as the archetype version | Specifies the version of the AWS Java SDK 2.x to be used

archetypes/archetype-lambda/src/main/resources/META-INF/maven/archetype-metadata.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
<validationRegex>(url-connection-client|apache-client|netty-nio-client)</validationRegex>
4040
</requiredProperty>
4141
<requiredProperty key="region">
42+
<defaultValue>null</defaultValue>
4243
<validationRegex>^\w+-(\w+-)+\d+$</validationRegex>
4344
</requiredProperty>
4445
<!-- Required to pass the netty-open-ssl-version property from parent pom to velocity-->

archetypes/archetype-lambda/src/main/resources/archetype-resources/pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1212
<maven.compiler.source>1.8</maven.compiler.source>
1313
<maven.compiler.target>1.8</maven.compiler.target>
14-
<maven.shade.plugin.version>3.1.1</maven.shade.plugin.version>
14+
<maven.shade.plugin.version>3.2.1</maven.shade.plugin.version>
1515
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
1616
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1717
<aws.java.sdk.version>${javaSdkVersion}</aws.java.sdk.version>
@@ -93,6 +93,15 @@
9393
<configuration>
9494
<createDependencyReducedPom>false</createDependencyReducedPom>
9595
<finalName>${artifactId}</finalName>
96+
<filters>
97+
<filter>
98+
<artifact>*:*</artifact>
99+
<excludes>
100+
<!-- Suppress module-info.class warning-->
101+
<exclude>module-info.class</exclude>
102+
</excludes>
103+
</filter>
104+
</filters>
96105
</configuration>
97106
<executions>
98107
<execution>

archetypes/archetype-lambda/src/main/resources/archetype-resources/src/main/java/DependencyFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
package ${package};
44

55
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
6+
#if ($region == 'null')
7+
import software.amazon.awssdk.core.SdkSystemSetting;
8+
#end
69
import software.amazon.awssdk.http.${httpClientPackageName};
710
import software.amazon.awssdk.regions.Region;
811
import software.amazon.awssdk.services.${servicePackage}.${serviceClientClassName};
@@ -20,7 +23,11 @@ private DependencyFactory() {}
2023
public static ${serviceClientClassName} ${serviceClientVariable}Client() {
2124
return ${serviceClientClassName}.builder()
2225
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
26+
#if ($region == 'null')
27+
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
28+
#else
2329
.region(Region.${regionEnum})
30+
#end
2431
.httpClientBuilder(${httpClientClassName}.builder())
2532
.build();
2633
}

archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/archetype.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ package=software.amazonaws.test
55
service=dynamodb
66
httpClient=apache-client
77
handlerClassName=MyApacheFunction
8-
region=ap-southeast-1
8+
region=null
99
javaSdkVersion=2.11.0
1010
nettyOpenSslVersion=2.0.29.Final

archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1111
<maven.compiler.source>1.8</maven.compiler.source>
1212
<maven.compiler.target>1.8</maven.compiler.target>
13-
<maven.shade.plugin.version>3.1.1</maven.shade.plugin.version>
13+
<maven.shade.plugin.version>3.2.1</maven.shade.plugin.version>
1414
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
@@ -80,6 +80,15 @@
8080
<configuration>
8181
<createDependencyReducedPom>false</createDependencyReducedPom>
8282
<finalName>test-apache-artifact</finalName>
83+
<filters>
84+
<filter>
85+
<artifact>*:*</artifact>
86+
<excludes>
87+
<!-- Suppress module-info.class warning-->
88+
<exclude>module-info.class</exclude>
89+
</excludes>
90+
</filter>
91+
</filters>
8392
</configuration>
8493
<executions>
8594
<execution>

archetypes/archetype-lambda/src/test/resources/projects/apachehttpclient/reference/src/main/java/software/amazonaws/test/DependencyFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package software.amazonaws.test;
33

44
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
5+
import software.amazon.awssdk.core.SdkSystemSetting;
56
import software.amazon.awssdk.http.apache.ApacheHttpClient;
67
import software.amazon.awssdk.regions.Region;
78
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
@@ -19,7 +20,7 @@ private DependencyFactory() {}
1920
public static DynamoDbClient dynamoDbClient() {
2021
return DynamoDbClient.builder()
2122
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
22-
.region(Region.AP_SOUTHEAST_1)
23+
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
2324
.httpClientBuilder(ApacheHttpClient.builder())
2425
.build();
2526
}

archetypes/archetype-lambda/src/test/resources/projects/dynamodbstreamsclient/reference/pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1111
<maven.compiler.source>1.8</maven.compiler.source>
1212
<maven.compiler.target>1.8</maven.compiler.target>
13-
<maven.shade.plugin.version>3.1.1</maven.shade.plugin.version>
13+
<maven.shade.plugin.version>3.2.1</maven.shade.plugin.version>
1414
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
@@ -80,6 +80,15 @@
8080
<configuration>
8181
<createDependencyReducedPom>false</createDependencyReducedPom>
8282
<finalName>test-dynamodbstreams-artifact</finalName>
83+
<filters>
84+
<filter>
85+
<artifact>*:*</artifact>
86+
<excludes>
87+
<!-- Suppress module-info.class warning-->
88+
<exclude>module-info.class</exclude>
89+
</excludes>
90+
</filter>
91+
</filters>
8392
</configuration>
8493
<executions>
8594
<execution>

archetypes/archetype-lambda/src/test/resources/projects/nettyclient/reference/pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1111
<maven.compiler.source>1.8</maven.compiler.source>
1212
<maven.compiler.target>1.8</maven.compiler.target>
13-
<maven.shade.plugin.version>3.1.1</maven.shade.plugin.version>
13+
<maven.shade.plugin.version>3.2.1</maven.shade.plugin.version>
1414
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
@@ -88,6 +88,15 @@
8888
<configuration>
8989
<createDependencyReducedPom>false</createDependencyReducedPom>
9090
<finalName>test-netty-artifact</finalName>
91+
<filters>
92+
<filter>
93+
<artifact>*:*</artifact>
94+
<excludes>
95+
<!-- Suppress module-info.class warning-->
96+
<exclude>module-info.class</exclude>
97+
</excludes>
98+
</filter>
99+
</filters>
91100
</configuration>
92101
<executions>
93102
<execution>

archetypes/archetype-lambda/src/test/resources/projects/urlhttpclient/reference/pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1111
<maven.compiler.source>1.8</maven.compiler.source>
1212
<maven.compiler.target>1.8</maven.compiler.target>
13-
<maven.shade.plugin.version>3.1.1</maven.shade.plugin.version>
13+
<maven.shade.plugin.version>3.2.1</maven.shade.plugin.version>
1414
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
@@ -80,6 +80,15 @@
8080
<configuration>
8181
<createDependencyReducedPom>false</createDependencyReducedPom>
8282
<finalName>test-url-connection-client-artifact</finalName>
83+
<filters>
84+
<filter>
85+
<artifact>*:*</artifact>
86+
<excludes>
87+
<!-- Suppress module-info.class warning-->
88+
<exclude>module-info.class</exclude>
89+
</excludes>
90+
</filter>
91+
</filters>
8392
</configuration>
8493
<executions>
8594
<execution>

archetypes/archetype-lambda/src/test/resources/projects/wafregionalclient/reference/pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1111
<maven.compiler.source>1.8</maven.compiler.source>
1212
<maven.compiler.target>1.8</maven.compiler.target>
13-
<maven.shade.plugin.version>3.1.1</maven.shade.plugin.version>
13+
<maven.shade.plugin.version>3.2.1</maven.shade.plugin.version>
1414
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
@@ -80,6 +80,15 @@
8080
<configuration>
8181
<createDependencyReducedPom>false</createDependencyReducedPom>
8282
<finalName>test-wafregional-artifact</finalName>
83+
<filters>
84+
<filter>
85+
<artifact>*:*</artifact>
86+
<excludes>
87+
<!-- Suppress module-info.class warning-->
88+
<exclude>module-info.class</exclude>
89+
</excludes>
90+
</filter>
91+
</filters>
8392
</configuration>
8493
<executions>
8594
<execution>

0 commit comments

Comments
 (0)