Configuring retries in the Amazon SDK for Ruby
The Amazon SDK for Ruby provides a default retry behavior for service requests and customizable configuration options. Calls to Amazon Web Services services occasionally return unexpected exceptions. Certain types of errors, such as throttling or transient errors, might be successful if the call is retried.
Retry behavior can be configured globally using environment variables or settings in the
shared Amazon config
file. For information on this approach, see Retry behavior in the
Amazon SDKs and Tools Reference Guide. It also includes detailed information on retry
strategy implementations and how to choose one over another.
Alternatively, these options can also be configured in your code, as shown in the following sections.
Specifying client retry behavior in code
By default, the Amazon SDK for Ruby performs up to three retries, with 15 seconds between retries, for a total of up to four attempts. Therefore, an operation could take up to 60 seconds to time out.
The following example creates an Amazon S3 client in the region us-west-2
, and
specifies to wait five seconds between two retries on every client operation. Therefore, Amazon S3
client operations could take up to 15 seconds to time out.
s3 = Aws::S3::Client.new( region: region, retry_limit: 2, retry_backoff: lambda { |c| sleep(5) } )
Any explicit setting set in the code or on a service client itself takes precedence over
those set in environment variables or the shared config
file.