在适用于 Rust 的 AWS SDK 中使用行为版本 - 适用于 Rust 的 AWS SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在适用于 Rust 的 AWS SDK 中使用行为版本

适用于 Rust 的 AWS SDK 开发人员期望并依赖该语言及其主要库提供的强大且可预测的行为。为了帮助使用适用于 Rust 的 SDK 的开发人员获得预期行为,客户端配置需要包含 BehaviorVersionBehaviorVersion 指定预期为默认值的 SDK 版本。这使得 SDK 可以不断发展,改变最佳实践以匹配新标准并支持新功能,而不会对应用程序的行为产生意想不到的不利影响。

警告

如果您尝试配置 SDK 或创建客户端,但未明确指定 BehaviorVersion,则构造函数会 panic。

例如,假设发布了新版本的 SDK,并采用了新的默认重试策略。如果您的应用程序使用与先前版本的 SDK 匹配的 BehaviorVersion,则将使用该先前配置而不是新的默认配置。

每次发布适用于 Rust 的 SDK 的新行为版本时,之前的 BehaviorVersion 都会被标记为适用于 Rust 的 SDK deprecated 属性,并且会添加新版本。这会导致在编译时出现警告,但除此之外,构建过程会照常进行。BehaviorVersion::latest() 也会更新,以指示新版本的默认行为。

注意

如果您的代码不依赖于极其具体的行为特性,则应在代码中使用 BehaviorVersion::latest(),或者在 Cargo.toml 文件中使用功能标志 behavior-version-latest。如果您要编写对延迟敏感的代码或用于调整 Rust SDK 行为的代码,可以考虑将 BehaviorVersion 固定到特定的主要版本。

Cargo.toml 中设置行为版本

您可以通过在 Cargo.toml 文件中添加相应的功能标志,为 SDK 和各个模块(例如 aws-sdk-s3aws-sdk-iam)指定行为版本。目前,Cargo.toml 仅支持 latest 版本的 SDK。

[dependencies] aws-config = { version = "1", features = ["behavior-version-latest"] } aws-sdk-s3 = { version = "1", features = ["behavior-version-latest"] }

在代码中设置行为版本

您可以通过在配置 SDK 或客户端时指定行为版本,根据需要更改代码的行为版本:

let config = aws_config::load_defaults(BehaviorVersion::v2023_11_09()).await;

此示例创建了一个配置,该配置使用环境来配置 SDK,但将 BehaviorVersion 设置为 v2023_11_09()