

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

# 在中使用行为版本 适用于 Rust 的 AWS SDK
<a name="behavior-versions"></a>

适用于 Rust 的 AWS SDK 开发人员期望并依赖该语言及其主要库提供的强大且可预测的行为。为了帮助使用适用于 Rust 的 SDK 的开发人员获得预期行为，客户端配置需要包含 `BehaviorVersion`。`BehaviorVersion` 指定预期为默认值的 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` 中设置行为版本
<a name="set-the-behavior-version-in-cargo-toml"></a>

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

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

## 在代码中设置行为版本
<a name="set-the-behavior-version-in-code"></a>

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

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

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