

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 中使用行為版本 適用於 Rust 的 AWS SDK
<a name="behavior-versions"></a>

適用於 Rust 的 AWS SDK 開發人員期望並依賴語言及其主要程式庫提供的強大且可預測的行為。為了協助開發人員使用適用於 Rust 的 SDK 取得預期的行為，用戶端組態需要包含 `BehaviorVersion`。`BehaviorVersion` 指定預設的 SDK 版本。這可讓 SDK 隨著時間演進，變更最佳實務以符合新標準，並支援新功能，而不會對您應用程式的行為造成非預期的負面影響。

**警告**  
如果您嘗試在未明確指定 的情況下設定 SDK 或建立用戶端`BehaviorVersion`，建構函數將會 panic。

例如，假設使用新的預設重試政策發行新版本的 SDK。如果您的應用程式使用`BehaviorVersion`符合先前版本的 SDK，則會使用該先前組態，而非新的預設組態。

每次發佈適用於 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-iam`，例如 `aws-sdk-s3`或 。目前， 僅支援 開發套件的 `latest`版本`Cargo.toml`：

```
[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()`。