Skip to content

Commit 2cf626b

Browse files
M-ElsaeedMohammed Ehab
andcommitted
Only Log Concurrency Warning Message when AWS_LAMBDA_MAX_CONCURRENCY is set (#90)
* Only Log Concurrency Warning Message when AWS_LAMBDA_MAX_CONCURRENCY is set * Var name change --------- Co-authored-by: Mohammed Ehab <moehabe@amazon.com>
1 parent d7e2a6d commit 2cf626b

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/util/ConcurrencyConfig.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,23 @@ public ConcurrencyConfig(LambdaContextLogger logger) {
2222
public ConcurrencyConfig(LambdaContextLogger logger, EnvReader envReader) {
2323
int readNumOfPlatformThreads = 0;
2424
try {
25-
readNumOfPlatformThreads = Integer.parseInt(envReader.getEnv(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_MAX_CONCURRENCY));
26-
if (readNumOfPlatformThreads <= 0 || readNumOfPlatformThreads > AWS_LAMBDA_MAX_CONCURRENCY_LIMIT) {
27-
throw new IllegalArgumentException();
25+
String readLambdaMaxConcurrencyEnvVar = envReader.getEnv(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_MAX_CONCURRENCY);
26+
27+
// Log only if env var is actually set to an invalid value. Otherwise default to no concurrency silently.
28+
if (!(readLambdaMaxConcurrencyEnvVar == null || readLambdaMaxConcurrencyEnvVar.isEmpty())) {
29+
readNumOfPlatformThreads = Integer.parseInt(readLambdaMaxConcurrencyEnvVar);
30+
if (readNumOfPlatformThreads <= 0 || readNumOfPlatformThreads > AWS_LAMBDA_MAX_CONCURRENCY_LIMIT) {
31+
throw new IllegalArgumentException();
32+
}
2833
}
2934
} catch (Exception e) {
30-
String message = String.format("User configured %s is not valid. Please make sure it is a positive number more than zero and less than or equal %d\n%s\nDefaulting to no concurrency.", ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_MAX_CONCURRENCY, AWS_LAMBDA_MAX_CONCURRENCY_LIMIT, UserFault.trace(e));
31-
logger.log(message, logger.getLogFormat() == LogFormat.JSON ? LogLevel.WARN : LogLevel.UNDEFINED);
3235
readNumOfPlatformThreads = 0;
36+
String message = String.format(
37+
"User configured %s is not valid. Please make sure it is a positive number more than zero and less than or equal %d\n%s\nDefaulting to no concurrency.",
38+
ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_MAX_CONCURRENCY,
39+
AWS_LAMBDA_MAX_CONCURRENCY_LIMIT,
40+
UserFault.trace(e));
41+
logger.log(message, logger.getLogFormat() == LogFormat.JSON ? LogLevel.WARN : LogLevel.UNDEFINED);
3342
}
3443

3544
this.numberOfPlatformThreads = readNumOfPlatformThreads;

aws-lambda-java-runtime-interface-client/src/test/java/com/amazonaws/services/lambda/runtime/api/client/util/ConcurrencyConfigTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ class ConcurrencyConfigTest {
2929

3030
@Test
3131
void testDefaultConfiguration() {
32-
when(lambdaLogger.getLogFormat()).thenReturn(LogFormat.JSON);
3332
when(envReader.getEnv(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_MAX_CONCURRENCY)).thenReturn(null);
3433

3534
ConcurrencyConfig config = new ConcurrencyConfig(lambdaLogger, envReader);
35+
verifyNoInteractions(lambdaLogger);
3636
assertEquals(0, config.getNumberOfPlatformThreads());
3737
assertEquals(false, config.isMultiConcurrent());
3838
}

0 commit comments

Comments
 (0)