Skip to content

Commit 74d812e

Browse files
authored
Merge branch 'main' into fix-e2e-tests
2 parents 304817e + 31bebb7 commit 74d812e

File tree

21 files changed

+809
-9
lines changed

21 files changed

+809
-9
lines changed

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ updates:
99
- "dependencies"
1010
ignore:
1111
# Ignore Mockito 5.X.X as it does not support Java 8
12-
- dependency-name: mockito-*
12+
- dependency-name: "org.mockito:mockito-*"
1313
update-types: ["version-update:semver-major"]

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Powertools for AWS Lambda (Java)
22

3-
![aws provider](https://img.shields.io/badge/provider-AWS-orange?logo=amazon-aws&color=ff9900) ![Build status](https://github.com/aws-powertools/powertools-lambda-java/actions/workflows/build.yml/badge.svg) ![Maven Central](https://img.shields.io/maven-central/v/software.amazon.lambda/powertools-parent) [![codecov.io](https://codecov.io/github/aws-powertools/lambda-java/branch/main/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/lambda-java)
3+
![aws provider](https://img.shields.io/badge/provider-AWS-orange?logo=amazon-aws&color=ff9900) ![Build status](https://github.com/aws-powertools/powertools-lambda-java/actions/workflows/build.yml/badge.svg) ![Maven Central](https://img.shields.io/maven-central/v/software.amazon.lambda/powertools-parent) [![codecov.io](https://codecov.io/github/aws-powertools/powertools-lambda-java/branch/main/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/powertools-lambda-java)
44

55

66
Powertools for AWS Lambda (Java) is a developer toolkit to implement Serverless best practices and increase developer velocity.

docs/utilities/parameters.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,49 @@ a `DynamoDbProvider` providing a client if you need to configure it yourself.
214214
}
215215
```
216216

217+
## AppConfig
218+
To get parameters stored in AppConfig, use `getAppConfigProvider`, providing the application and environment
219+
name to retrieve configuration from. As with the other providers, an overloaded method allows you to retrieve
220+
an `AppConfigProvider` providing a client if you need to configure it yourself.
221+
222+
=== "AppConfigProvider"
223+
224+
```java hl_lines="6 9"
225+
import software.amazon.lambda.powertools.parameters.AppConfigProvider;
226+
import software.amazon.lambda.powertools.parameters.ParamManager;
227+
228+
public class AppWitAppConfigParameters implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
229+
// Get an instance of the AppConfigProvider
230+
AppConfigProvider appConfigProvider = ParamManager.getAppConfigProvider("my-environment", "my-app");
231+
232+
// Retrieve a single parameter
233+
String value = appConfigProvider.get("my-key");
234+
}
235+
```
236+
237+
=== "AppConfigProvider with a custom client"
238+
239+
```java hl_lines="9 10 11 12 15 18"
240+
import software.amazon.lambda.powertools.parameters.AppConfigProvider;
241+
import software.amazon.lambda.powertools.parameters.ParamManager;
242+
import software.amazon.awssdk.services.appconfigdata.AppConfigDataClient;
243+
import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
244+
import software.amazon.awssdk.regions.Region;
245+
246+
public class AppWithDynamoDbParameters implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
247+
// Get an AppConfig Client with an explicit region
248+
AppConfigDataClient appConfigDataClient = AppConfigDataClient.builder()
249+
.httpClientBuilder(UrlConnectionHttpClient.builder())
250+
.region(Region.EU_CENTRAL_2)
251+
.build();
252+
253+
// Get an instance of the DynamoDbProvider
254+
AppConfigProvider appConfigProvider = ParamManager.getAppConfigProvider(appConfigDataClient, "my-environment", "my-app");
255+
256+
// Retrieve a single parameter
257+
String value = appConfigProvider.get("my-key");
258+
}
259+
```
217260

218261

219262
## Advanced configuration

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
<aspectj-maven-plugin.version>1.13.1</aspectj-maven-plugin.version>
7272
<maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
7373
<jacoco-maven-plugin.version>0.8.10</jacoco-maven-plugin.version>
74-
<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
74+
<nexus-staging-maven-plugin.version>1.6.13</nexus-staging-maven-plugin.version>
7575
<maven-javadoc-plugin.version>3.5.0</maven-javadoc-plugin.version>
7676
<maven-source-plugin.version>3.3.0</maven-source-plugin.version>
7777
<maven-gpg-plugin.version>3.1.0</maven-gpg-plugin.version>
@@ -183,7 +183,7 @@
183183
</dependency>
184184
<dependency>
185185
<groupId>org.apache.logging.log4j</groupId>
186-
<artifactId>log4j-slf4j-impl</artifactId>
186+
<artifactId>log4j-slf4j2-impl</artifactId>
187187
<version>${log4j.version}</version>
188188
</dependency>
189189
<dependency>

powertools-e2e-tests/handlers/metrics/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<artifactId>e2e-test-handler-metrics</artifactId>
1212
<packaging>jar</packaging>
13-
<name>A Lambda function using powertools metrics</name>
13+
<name>A Lambda function using Powertools for AWS Lambda (Java) Parameters</name>
1414

1515
<dependencies>
1616
<dependency>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<parent>
6+
<groupId>software.amazon.lambda</groupId>
7+
<artifactId>e2e-test-handlers-parent</artifactId>
8+
<version>1.0.0</version>
9+
</parent>
10+
11+
<artifactId>e2e-test-handler-parameters</artifactId>
12+
<packaging>jar</packaging>
13+
<name>A Lambda function using powertools logging</name>
14+
15+
<dependencies>
16+
<dependency>
17+
<groupId>software.amazon.lambda</groupId>
18+
<artifactId>powertools-logging</artifactId>
19+
</dependency>
20+
<dependency>
21+
<groupId>software.amazon.lambda</groupId>
22+
<artifactId>powertools-parameters</artifactId>
23+
</dependency>
24+
<dependency>
25+
<groupId>com.amazonaws</groupId>
26+
<artifactId>aws-lambda-java-events</artifactId>
27+
</dependency>
28+
29+
</dependencies>
30+
31+
<build>
32+
<plugins>
33+
<plugin>
34+
<groupId>org.codehaus.mojo</groupId>
35+
<artifactId>aspectj-maven-plugin</artifactId>
36+
<configuration>
37+
<source>${maven.compiler.source}</source>
38+
<target>${maven.compiler.target}</target>
39+
<complianceLevel>${maven.compiler.target}</complianceLevel>
40+
<aspectLibraries>
41+
<aspectLibrary>
42+
<groupId>software.amazon.lambda</groupId>
43+
<artifactId>powertools-logging</artifactId>
44+
</aspectLibrary>
45+
</aspectLibraries>
46+
</configuration>
47+
<executions>
48+
<execution>
49+
<goals>
50+
<goal>compile</goal>
51+
</goals>
52+
</execution>
53+
</executions>
54+
</plugin>
55+
<plugin>
56+
<groupId>org.apache.maven.plugins</groupId>
57+
<artifactId>maven-shade-plugin</artifactId>
58+
</plugin>
59+
</plugins>
60+
</build>
61+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package software.amazon.lambda.powertools.e2e;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import org.apache.logging.log4j.LogManager;
6+
import org.apache.logging.log4j.Logger;
7+
import software.amazon.lambda.powertools.logging.Logging;
8+
import software.amazon.lambda.powertools.parameters.ParamManager;
9+
import software.amazon.lambda.powertools.parameters.cache.CacheManager;
10+
import software.amazon.lambda.powertools.parameters.AppConfigProvider;
11+
12+
public class Function implements RequestHandler<Input, String> {
13+
14+
private static final Logger LOG = LogManager.getLogger(Function.class);
15+
16+
@Logging
17+
public String handleRequest(Input input, Context context) {
18+
AppConfigProvider provider = ParamManager.getAppConfigProvider(input.getEnvironment(), input.getApp());
19+
return provider.get(input.getKey());
20+
21+
}
22+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package software.amazon.lambda.powertools.e2e;
2+
3+
import java.util.Map;
4+
5+
public class Input {
6+
7+
private String app;
8+
private String environment;
9+
private String key;
10+
public void setApp(String app) {
11+
this.app = app;
12+
}
13+
14+
public void setEnvironment(String environment) {
15+
this.environment = environment;
16+
}
17+
18+
public void setKey(String key) {
19+
this.key = key;
20+
}
21+
22+
public String getApp() {
23+
return app;
24+
}
25+
26+
public String getEnvironment() {
27+
return environment;
28+
}
29+
30+
public String getKey() {
31+
return key;
32+
}
33+
34+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Configuration>
3+
<Appenders>
4+
<Console name="JsonAppender" target="SYSTEM_OUT">
5+
<JsonTemplateLayout eventTemplateUri="classpath:LambdaJsonLayout.json" />
6+
</Console>
7+
</Appenders>
8+
<Loggers>
9+
<Root level="INFO">
10+
<AppenderRef ref="JsonAppender"/>
11+
</Root>
12+
<Logger name="JsonLogger" level="INFO" additivity="false">
13+
<AppenderRef ref="JsonAppender"/>
14+
</Logger>
15+
</Loggers>
16+
</Configuration>

powertools-e2e-tests/handlers/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<module>tracing</module>
2828
<module>metrics</module>
2929
<module>idempotency</module>
30+
<module>parameters</module>
3031
</modules>
3132

3233
<dependencyManagement>
@@ -51,6 +52,11 @@
5152
<artifactId>powertools-idempotency</artifactId>
5253
<version>${lambda.powertools.version}</version>
5354
</dependency>
55+
<dependency>
56+
<groupId>software.amazon.lambda</groupId>
57+
<artifactId>powertools-parameters</artifactId>
58+
<version>${lambda.powertools.version}</version>
59+
</dependency>
5460
<dependency>
5561
<groupId>com.amazonaws</groupId>
5662
<artifactId>aws-lambda-java-core</artifactId>

0 commit comments

Comments
 (0)