2.2.0 • Published 2 months ago

@smithy/util-retry v2.2.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 months ago

@smithy/util-retry

NPM version NPM downloads

This package provides shared utilities for retries.

Usage

Default

By default, each client already has a default retry strategy. The default retry count is 3, and only retryable errors will be retried.

AWS Documentation: Retry behavior.

import { S3Client } from "@aws-sdk/client-s3";

const client = new S3Client({}); // default retry strategy included.

MaxAttempts

If you want to change the number of attempts, you can provide maxAttempts configuration during client creation.

import { S3Client } from "@aws-sdk/client-s3";

const client = new S3Client({ maxAttempts: 4 });

This is recommended because the StandardRetryStrategy includes backoff calculation, deciding whether an error should be retried, and a retry token counter.

MaxAttempts and BackoffComputation

If you want to change the number of attempts and use a custom delay computation, you can use the ConfiguredRetryStrategy from @smithy/util-retry.

import { S3Client } from "@aws-sdk/client-s3";
import { ConfiguredRetryStrategy } from "@smithy/util-retry";

const client = new S3Client({
  retryStrategy: new ConfiguredRetryStrategy(
    4, // max attempts.
    (attempt: number) => 100 + attempt * 1000 // backoff function.
  ),
});

This example sets the backoff at 100ms plus 1s per attempt.

MaxAttempts and RetryStrategy

If you provide both maxAttempts and retryStrategy, the retryStrategy will get precedence as it's more specific.

import { S3Client } from "@aws-sdk/client-s3";
import { ConfiguredRetryStrategy } from "@smithy/util-retry";

const client = new S3Client({
  maxAttempts: 2, // ignored.
  retryStrategy: new ConfiguredRetryStrategy(
    4, // used.
    (attempt: number) => 100 + attempt * 1000 // backoff function.
  ),
});

Further customization

You can implement the RetryStrategyV2 interface.

Source: https://github.com/awslabs/smithy-typescript/blob/main/packages/types/src/retry.ts API Docs: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-smithy-types/Interface/RetryStrategyV2/

@everything-registry/sub-chunk-846@borneodata/borneo-client@aws-sdk/client-elastic-load-balancing@aws-sdk/client-elastic-load-balancing-v2@aws-sdk/client-elastic-transcoder@aws-sdk/client-elasticache@aws-sdk/client-elasticsearch-service@aws-sdk/client-kendra-ranking@aws-sdk/client-keyspaces@aws-sdk/client-kinesis@aws-sdk/client-kinesis-analytics@aws-sdk/client-kinesis-analytics-v2@aws-sdk/client-kinesis-video@aws-sdk/client-kinesis-video-archived-media@aws-sdk/client-iotthingsgraph@aws-sdk/client-iottwinmaker@aws-sdk/client-ivs@aws-sdk/client-ivs-realtime@aws-sdk/client-ivschat@aws-sdk/client-kafka@aws-sdk/client-kafkaconnect@aws-sdk/client-kendra@aws-sdk/client-glue@aws-sdk/client-grafana@aws-sdk/client-greengrass@aws-sdk/client-greengrassv2@aws-sdk/client-groundstation@aws-sdk/client-guardduty@aws-sdk/client-iot-wireless@aws-sdk/client-iotanalytics@aws-sdk/client-iotdeviceadvisor@aws-sdk/client-iotfleethub@aws-sdk/client-iotfleetwise@aws-sdk/client-iotsecuretunneling@aws-sdk/client-iotsitewise@aws-sdk/client-health@aws-sdk/client-healthlake@aws-sdk/client-honeycode@aws-sdk/client-iam@aws-sdk/client-identitystore@aws-sdk/client-imagebuilder@aws-sdk/client-inspector@aws-sdk/client-inspector-scan@aws-sdk/client-inspector2@aws-sdk/client-internetmonitor@aws-sdk/client-iot@aws-sdk/client-iot-1click-devices-service@aws-sdk/client-iot-1click-projects@aws-sdk/client-frauddetector@aws-sdk/client-freetier@aws-sdk/client-fsx@aws-sdk/client-gamelift@aws-sdk/client-gamesparks@aws-sdk/client-iot-data-plane@aws-sdk/client-iot-events@aws-sdk/client-iot-events-data@aws-sdk/client-iot-jobs-data-plane@aws-sdk/client-iot-roborunner@aws-sdk/client-glacier@aws-sdk/client-global-accelerator@aws-sdk/client-bcm-data-exports@aws-sdk/client-bedrock@aws-sdk/client-bedrock-agent@aws-sdk/client-bedrock-agent-runtime@aws-sdk/client-bedrock-runtime@aws-sdk/client-billingconductor@aws-sdk/client-connectcampaigns@aws-sdk/client-connectcases@aws-sdk/client-connectparticipant@aws-sdk/client-controlcatalog@aws-sdk/client-controltower@aws-sdk/client-cost-and-usage-report-service@aws-sdk/client-cost-explorer@aws-sdk/client-cost-optimization-hub@aws-sdk/client-customer-profiles@aws-sdk/client-applicationcostprofiler@aws-sdk/client-apprunner@aws-sdk/client-appstream@aws-sdk/client-appsync@aws-sdk/client-arc-zonal-shift@aws-sdk/client-artifact@aws-sdk/client-deadline@aws-sdk/client-detective@aws-sdk/client-device-farm@aws-sdk/client-devops-guru@aws-sdk/client-direct-connect@aws-sdk/client-directory-service@aws-sdk/client-appflow@aws-sdk/client-appintegrations@aws-sdk/client-application-auto-scaling@aws-sdk/client-application-discovery-service@aws-sdk/client-application-insights@aws-sdk/client-auditmanager@aws-sdk/client-auto-scaling@aws-sdk/client-auto-scaling-plans@aws-sdk/client-clouddirectory@aws-sdk/client-cloudformation@aws-sdk/client-cloudfront@aws-sdk/client-cloudfront-keyvaluestore@aws-sdk/client-alexa-for-business
2.2.0

2 months ago

2.1.4

2 months ago

2.1.3

2 months ago

2.1.2

2 months ago

2.1.1

3 months ago

2.1.0

4 months ago

2.0.9

4 months ago

2.0.8

5 months ago

1.1.0

9 months ago

1.0.4

10 months ago

1.0.3

10 months ago

2.0.3

7 months ago

2.0.2

8 months ago

2.0.5

7 months ago

2.0.4

7 months ago

2.0.7

5 months ago

2.0.6

6 months ago

2.0.1

8 months ago

2.0.0

9 months ago

1.0.2

10 months ago

1.0.1

11 months ago

1.0.0

11 months ago