diff --git a/data-prepper-plugins/aws-lambda/README.md b/data-prepper-plugins/aws-lambda/README.md index 25806f3d61..a67b3c6d40 100644 --- a/data-prepper-plugins/aws-lambda/README.md +++ b/data-prepper-plugins/aws-lambda/README.md @@ -16,6 +16,11 @@ lambda-pipeline: max_retries: 3 invocation_type: "RequestResponse" payload_model: "batch_event" + client: + connection_timeout: 60s + read_timeout: 60s + api_call_timeout: 60s + max_retries: 3 batch: key_name: "osi_key" threshold: @@ -96,6 +101,11 @@ lambda-pipeline: sts_role_arn: "" function_name: "uploadToS3Lambda" max_retries: 3 + client: + connection_timeout: 60s + read_timeout: 60s + api_call_timeout: 60s + max_retries: 3 batch: key_name: "osi_key" threshold: diff --git a/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/client/LambdaClientFactory.java b/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/client/LambdaClientFactory.java index 94a6b2fab7..0a4372fbfa 100644 --- a/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/client/LambdaClientFactory.java +++ b/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/client/LambdaClientFactory.java @@ -34,7 +34,8 @@ public static LambdaAsyncClient createAsyncLambdaClient( createOverrideConfiguration(clientOptions, awsSdkMetrics)) .httpClient(NettyNioAsyncHttpClient.builder() .maxConcurrency(clientOptions.getMaxConcurrency()) - .connectionTimeout(clientOptions.getConnectionTimeout()).build()) + .connectionTimeout(clientOptions.getConnectionTimeout()) + .readTimeout(clientOptions.getReadTimeout()).build()) .build(); } diff --git a/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/config/ClientOptions.java b/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/config/ClientOptions.java index bab1c16c91..48ecb4aed5 100644 --- a/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/config/ClientOptions.java +++ b/data-prepper-plugins/aws-lambda/src/main/java/org/opensearch/dataprepper/plugins/lambda/common/config/ClientOptions.java @@ -11,6 +11,7 @@ public class ClientOptions { public static final int DEFAULT_CONNECTION_RETRIES = 3; public static final int DEFAULT_MAXIMUM_CONCURRENCY = 200; public static final Duration DEFAULT_CONNECTION_TIMEOUT = Duration.ofSeconds(60); + public static final Duration DEFAULT_READ_TIMEOUT = Duration.ofSeconds(60); public static final Duration DEFAULT_API_TIMEOUT = Duration.ofSeconds(60); public static final Duration DEFAULT_BASE_DELAY = Duration.ofMillis(100); public static final Duration DEFAULT_MAX_BACKOFF = Duration.ofSeconds(20); @@ -27,6 +28,10 @@ public class ClientOptions { @JsonProperty("connection_timeout") private Duration connectionTimeout = DEFAULT_CONNECTION_TIMEOUT; + @JsonPropertyDescription("read timeout defines the time sdk waits for data to be read from an established connection") + @JsonProperty("read_timeout") + private Duration readTimeout = DEFAULT_READ_TIMEOUT; + @JsonPropertyDescription("max concurrency defined from the client side") @JsonProperty("max_concurrency") private int maxConcurrency = DEFAULT_MAXIMUM_CONCURRENCY;