September 21st, 2022
Pre-release
Pre-release
aws-sdk-rust-ci
released this
21 Sep 00:40
·
1522 commits
to main
since this release
Breaking Changes:
- ⚠ (smithy-rs#1603, aws-sdk-rust#586)
aws_config::RetryConfig
no longer implementsDefault
, and itsnew
function has been replaced withstandard
. - ⚠ (smithy-rs#1603, aws-sdk-rust#586) Direct configuration of
aws_config::SdkConfig
now defaults to retries being disabled.
If you're usingaws_config::load_from_env()
oraws_config::from_env()
to configure
the SDK, then you are NOT affected by this change. If you useSdkConfig::builder()
to
configure the SDK, then you ARE affected by this change and should set the retry config
on that builder. - ⚠ (smithy-rs#1603, aws-sdk-rust#586) Client creation now panics if retries or timeouts are enabled without an async sleep
implementation set on the SDK config.
If you're using the Tokio runtime and have thert-tokio
feature enabled (which is enabled by default),
then you shouldn't notice this change at all.
Otherwise, if using something other than Tokio as the async runtime, theAsyncSleep
trait must be implemented,
and that implementation given to the config builder via thesleep_impl
method. Alternatively, retry can be
explicitly turned off by setting the retry config toRetryConfig::disabled()
, which will result in successful
client creation without an async sleep implementation. - ⚠ (smithy-rs#1715, smithy-rs#1717)
ClassifyResponse
was renamed toClassifyRetry
and is no longer implemented for the unit type. - ⚠ (smithy-rs#1715, smithy-rs#1717) The
with_retry_policy
andretry_policy
functions onaws_smithy_http::operation::Operation
have been
renamed towith_retry_classifier
andretry_classifier
respectively. Public memberretry_policy
on
aws_smithy_http::operation::Parts
has been renamed toretry_classifier
.
New this release:
-
🎉 (smithy-rs#1647, smithy-rs#1112) Implemented customizable operations per RFC-0017.
Before this change, modifying operations before sending them required using lower-level APIs:
let input = SomeOperationInput::builder().some_value(5).build()?; let operation = { let op = input.make_operation(&service_config).await?; let (request, response) = op.into_request_response(); let request = request.augment(|req, _props| { req.headers_mut().insert( HeaderName::from_static("x-some-header"), HeaderValue::from_static("some-value") ); Result::<_, Infallible>::Ok(req) })?; Operation::from_parts(request, response) }; let response = smithy_client.call(operation).await?;
Now, users may easily modify operations before sending with the
customize
method:let response = client.some_operation() .some_value(5) .customize() .await? .mutate_request(|mut req| { req.headers_mut().insert( HeaderName::from_static("x-some-header"), HeaderValue::from_static("some-value") ); }) .send() .await?;
-
🐛 (smithy-rs#966, smithy-rs#1718) The AWS STS SDK now automatically retries
IDPCommunicationError
when callingAssumeRoleWithWebIdentity
-
🐛 (aws-sdk-rust#303, smithy-rs#1717) The
SdkError::ResponseError
, typically caused by a connection terminating before the full response is received, is now treated as a transient failure and retried.