Skip to content

Commit 8cdff29

Browse files
perf: Make UrlConnectionHttpClient default client for params fetch (#185)
1 parent e059fd8 commit 8cdff29

File tree

3 files changed

+47
-11
lines changed

3 files changed

+47
-11
lines changed

powertools-parameters/pom.xml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,34 @@
4444
<dependency>
4545
<groupId>software.amazon.awssdk</groupId>
4646
<artifactId>ssm</artifactId>
47+
<exclusions>
48+
<exclusion>
49+
<groupId>software.amazon.awssdk</groupId>
50+
<artifactId>apache-client</artifactId>
51+
</exclusion>
52+
<exclusion>
53+
<groupId>software.amazon.awssdk</groupId>
54+
<artifactId>netty-nio-client</artifactId>
55+
</exclusion>
56+
</exclusions>
4757
</dependency>
4858
<dependency>
4959
<groupId>software.amazon.awssdk</groupId>
5060
<artifactId>secretsmanager</artifactId>
61+
<exclusions>
62+
<exclusion>
63+
<groupId>software.amazon.awssdk</groupId>
64+
<artifactId>apache-client</artifactId>
65+
</exclusion>
66+
<exclusion>
67+
<groupId>software.amazon.awssdk</groupId>
68+
<artifactId>netty-nio-client</artifactId>
69+
</exclusion>
70+
</exclusions>
5171
</dependency>
5272
<dependency>
5373
<groupId>software.amazon.awssdk</groupId>
54-
<artifactId>apache-client</artifactId>
74+
<artifactId>url-connection-client</artifactId>
5575
</dependency>
5676
<dependency>
5777
<groupId>com.fasterxml.jackson.core</groupId>

powertools-parameters/src/main/java/software/amazon/lambda/powertools/parameters/SSMProvider.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
*/
1414
package software.amazon.lambda.powertools.parameters;
1515

16+
import java.time.temporal.ChronoUnit;
17+
import java.util.HashMap;
18+
import java.util.Map;
19+
20+
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
21+
import software.amazon.awssdk.core.SdkSystemSetting;
22+
import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
23+
import software.amazon.awssdk.regions.Region;
1624
import software.amazon.awssdk.services.ssm.SsmClient;
1725
import software.amazon.awssdk.services.ssm.model.GetParameterRequest;
1826
import software.amazon.awssdk.services.ssm.model.GetParametersByPathRequest;
@@ -22,10 +30,6 @@
2230
import software.amazon.lambda.powertools.parameters.transform.TransformationManager;
2331
import software.amazon.lambda.powertools.parameters.transform.Transformer;
2432

25-
import java.time.temporal.ChronoUnit;
26-
import java.util.HashMap;
27-
import java.util.Map;
28-
2933
/**
3034
* AWS System Manager Parameter Store Provider <br/><br/>
3135
*
@@ -78,7 +82,11 @@ public class SSMProvider extends BaseProvider {
7882
* Use the {@link SSMProvider.Builder} to create an instance of it.
7983
*/
8084
SSMProvider(CacheManager cacheManager) {
81-
this(cacheManager, SsmClient.create());
85+
this(cacheManager, SsmClient.builder()
86+
.httpClientBuilder(UrlConnectionHttpClient.builder())
87+
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
88+
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
89+
.build());
8290
}
8391

8492
/**

powertools-parameters/src/main/java/software/amazon/lambda/powertools/parameters/SecretsProvider.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,20 @@
1313
*/
1414
package software.amazon.lambda.powertools.parameters;
1515

16+
import java.time.temporal.ChronoUnit;
17+
import java.util.Base64;
18+
import java.util.Map;
19+
20+
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
21+
import software.amazon.awssdk.core.SdkSystemSetting;
22+
import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
23+
import software.amazon.awssdk.regions.Region;
1624
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
1725
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
1826
import software.amazon.lambda.powertools.parameters.cache.CacheManager;
1927
import software.amazon.lambda.powertools.parameters.transform.TransformationManager;
2028
import software.amazon.lambda.powertools.parameters.transform.Transformer;
2129

22-
import java.time.temporal.ChronoUnit;
23-
import java.util.Base64;
24-
import java.util.Map;
25-
2630
/**
2731
* AWS Secrets Manager Parameter Provider<br/><br/>
2832
*
@@ -58,7 +62,11 @@ public class SecretsProvider extends BaseProvider {
5862
* Use the {@link Builder} to create an instance of it.
5963
*/
6064
SecretsProvider(CacheManager cacheManager) {
61-
this(cacheManager, SecretsManagerClient.create());
65+
this(cacheManager, SecretsManagerClient.builder()
66+
.httpClientBuilder(UrlConnectionHttpClient.builder())
67+
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
68+
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
69+
.build());
6270
}
6371

6472
/**

0 commit comments

Comments
 (0)