

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

# 智慧組態預設值
<a name="feature-smart-config-defaults"></a>

**注意**  
如需了解設定頁面配置或解譯以下 **Support AWS SDKs和工具**資料表的說明，請參閱 [了解本指南的設定頁面](settings-reference.md#settingsPages)。

透過智慧型組態預設值功能， AWS SDKs可以為其他組態設定提供預先定義的最佳化預設值。

使用下列項目設定此功能：

**`defaults_mode` - 共用 AWS `config`檔案設定`AWS_DEFAULTS_MODE` - 環境變數`aws.defaultsMode` - JVM 系統屬性：僅限 Java/Kotlin**  
使用此設定，您可以選擇與您的應用程式架構相符的模式，然後為您的應用程式提供最佳化的預設值。如果 AWS SDK 設定有明確設定的值，則該值一律優先。如果 AWS SDK 設定沒有明確設定的值，而且`defaults_mode`不等於舊版，則此功能可以為您的應用程式最佳化的各種設定提供不同的預設值。設定可能包括下列項目：HTTP 通訊設定、重試行為、服務區域端點設定，以及可能的任何 SDK 相關組態。使用此功能的客戶可以取得針對常見使用案例量身打造的新組態預設值。如果您的 `defaults_mode` 不等於 `legacy`，我們建議您在升級 SDK 時執行應用程式的測試，因為提供的預設值可能會隨著最佳實務的演進而變更。  
**預設值**：`legacy`  
注意：軟體SDKs的新主要版本預設為 `standard`。  
**有效值**：  
+ `legacy` – 提供預設設定，這些設定會因 SDK 而異，並在建立 之前已存在`defaults_mode`。
+ `standard` – 提供應可在大多數情況下安全執行的最新建議預設值。
+ `in-region` – 以標準模式為基礎，包括針對 AWS 服務 在相同 內呼叫的應用程式量身打造的最佳化 AWS 區域。
+ `cross-region` – 以標準模式為基礎，包括為 AWS 服務 在不同區域中呼叫的應用程式量身打造的最佳化。
+ `mobile` – 以標準模式建置，並包含專為行動應用程式量身打造的最佳化。
+ `auto` – 以標準模式為基礎，並包含實驗性功能。SDK 會嘗試探索執行時期環境，自動判斷適當的設定。自動偵測是以啟發式為基礎，不提供 100% 的準確性。如果無法判斷執行時間環境，則會使用 `standard` 模式。自動偵測可能會查詢[執行個體中繼資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)，這可能會導致延遲。如果啟動延遲對您的應用程式至關重要，我們建議您改為明確選擇 `defaults_mode`。
 在 `config` 檔案中設定此值的範例：  

```
[default]
defaults_mode = standard
```
下列參數可能會根據 的選擇進行最佳化`defaults_mode`：  
+ `retryMode` – 指定 SDK 嘗試重試的方式。請參閱 [重試行為](feature-retry-behavior.md)。
+ `stsRegionalEndpoints` – 指定 SDK 如何決定用來與 AWS Security Token Service () 通訊的 AWS 服務 端點AWS STS。請參閱 [AWS STS 區域端點](feature-sts-regionalized-endpoints.md)。
+ `s3UsEast1RegionalEndpoints` – 指定 SDK 如何決定用來與 `us-east-1` 區域的 Amazon S3 通訊 AWS 的服務端點。
+ `connectTimeoutInMillis` – 在通訊端上進行初始連線嘗試之後，逾時之前的時間量。如果用戶端未收到連線交握完成，用戶端會放棄操作並失敗。
+ `tlsNegotiationTimeoutInMillis` – 從傳送 CLIENT HELLO 訊息到用戶端和伺服器完全交涉密碼和交換金鑰的時間，TLS 交握可以花費的時間上限。

每個設定的預設值會根據為您的應用程式`defaults_mode`選取的 而變更。這些值目前設定如下 （可能會有所變更）：


| 參數 | `standard` 模式 | `in-region` 模式 | `cross-region` 模式 | `mobile` 模式 | 
| --- | --- | --- | --- | --- | 
|  retryMode  | standard | standard | standard | standard | 
|  stsRegionalEndpoints  | regional | regional | regional | regional | 
|  s3UsEast1RegionalEndpoints  | regional | regional | regional | regional | 
|  connectTimeoutInMillis  | 3100 | 1100 | 3100 | 30000 | 
|  tlsNegotiationTimeoutInMillis  | 3100 | 1100 | 3100 | 30000 | 

例如，如果您`defaults_mode`選取的 是 `standard`，則 的值`standard`會指派給 `retry_mode`（從有效`retry_mode`選項），而 的值`regional`會指派給 `stsRegionalEndpoints`（從有效`stsRegionalEndpoints`選項）。

## 支援 AWS SDKs和工具
<a name="feature-smart-config-defaults-sdk-compat"></a>

下列 SDKs 支援本主題中所述的功能和設定。會記下任何部分例外狀況。 適用於 Java 的 AWS SDK 和 適用於 Kotlin 的 AWS SDK 僅支援任何 JVM 系統屬性設定。


| SDK | 支援 | 備註或更多資訊 | 
| --- | --- | --- | 
| [AWS CLI  ](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 否 |  | 
| [適用於 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) |  是 | 參數未最佳化：stsRegionalEndpoints、s3UsEast1RegionalEndpoints、tlsNegotiationTimeoutInMillis。 | 
| [適用於 Go V2 的 SDK (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 | 參數未最佳化：retryMode、stsRegionalEndpoints、s3UsEast1RegionalEndpoints。 | 
| [適用於 Go 的 SDK 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [適用於 Java 的 SDK 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | 參數未最佳化：stsRegionalEndpoints。 | 
| [適用於 Java 的 SDK 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [適用於 JavaScript 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 | 未最佳化的參數：stsRegionalEndpoints、s3UsEast1RegionalEndpoints、tlsNegotiationTimeoutInMillis。 connectTimeoutInMillis 稱為 connectionTimeout。 | 
| [適用於 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [適用於 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 |  | 
| [適用於 .NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 | 參數未最佳化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 
| [適用於 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 | 參數未最佳化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 
| [適用於 PHP 的 SDK 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 | 參數未最佳化：tlsNegotiationTimeoutInMillis。 | 
| [適用於 Python 的 SDK (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 參數未最佳化：tlsNegotiationTimeoutInMillis。 | 
| [適用於 Ruby 的 SDK 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |   | 
| [適用於 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 |  | 
| [適用於 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 | 參數未最佳化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 
| [PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 | 參數未最佳化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 