本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
智慧組態預設值
注意
如需了解設定頁面配置或解譯 Support AWS SDKs和後續工具資料表的說明,請參閱 了解本指南的設定頁面。
透過智慧組態預設值功能, AWS SDKs可以為其他組態設定提供預先定義、最佳化的預設值。
使用下列設定此功能:
defaults_mode
- 共用 AWSconfig
檔案設定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
– 以標準模式為基礎,並包含實驗性功能。軟體開發套件會嘗試探索執行期環境,以自動判斷適當的設定。自動偵測是以啟發式為基礎,不提供 100% 的準確性。如果無法判斷執行期環境,則會使用standard
模式。自動偵測可能會查詢執行個體中繼資料,這可能會導致延遲。如果啟動延遲對您的應用程式至關重要,建議您defaults_mode
改為選擇明確。
在
config
檔案中設定此值的範例:[default]
defaults_mode
= standard下列參數可根據 的選擇進行最佳化
defaults_mode
:-
retryMode
– 指定 SDK 嘗試重試的方式。請參閱 重試行為。 -
stsRegionalEndpoints
– 指定 SDK 如何決定用來與 AWS Security Token Service () 交談的 AWS 服務 端點AWS STS。請參閱 AWS STS 區域端點。 -
s3UsEast1RegionalEndpoints
– 指定 SDK 如何判斷用來與us-east-1
Amazon S3 的區域通訊 AWS 的服務端點。 -
connectTimeoutInMillis
– 在通訊端上進行初始連線嘗試後,逾時前的時間量。如果用戶端未收到連線交握的完成,用戶端會放棄操作並失敗。 -
tlsNegotiationTimeoutInMillis
– TLS 交握從傳送 CLIENT HELLO 訊息到用戶端和伺服器完整交涉密碼和交換金鑰的時間長度上限。
-
每個設定的預設值會根據您應用程式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和工具
下列 SDKs 支援本主題中所述的功能和設定。會記下任何部分例外狀況。 適用於 Java 的 AWS SDK 和 適用於 Kotlin 的 AWS SDK 僅支援任何 JVM 系統屬性設定。
SDK | 支援 | 備註或更多資訊 |
---|---|---|
AWS CLI v2 | 否 | |
適用於 C++ 的 SDK | 是 | 參數未最佳化:stsRegionalEndpoints 、s3UsEast1RegionalEndpoints 、tlsNegotiationTimeoutInMillis 。 |
SDK for Go V2 (1.x) |
是 | 參數未最佳化:retryMode 、stsRegionalEndpoints 、s3UsEast1RegionalEndpoints 。 |
適用於 Go 的 SDK 1.x (V1) | 否 | |
適用於 Java 的 SDK 2.x | 是 | 參數未最佳化:stsRegionalEndpoints 。 |
適用於 Java 的 SDK 1.x | 否 | |
適用於 JavaScript 3.x 的 SDK | 是 | 參數未最佳化:stsRegionalEndpoints 、s3UsEast1RegionalEndpoints 、tlsNegotiationTimeoutInMillis 。 connectTimeoutInMillis 稱為 connectionTimeout 。 |
適用於 JavaScript 2.x 的 SDK | 否 | |
適用於 Kotlin 的 SDK | 否 | |
適用於 .NET 3.x 的 SDK | 是 | 參數未最佳化:connectTimeoutInMillis 、tlsNegotiationTimeoutInMillis 。 |
適用於 PHP 3.x 的 SDK | 是 | 參數未最佳化:tlsNegotiationTimeoutInMillis 。 |
適用於 Python 的 SDK (Boto3) |
是 | 參數未最佳化:tlsNegotiationTimeoutInMillis 。 |
適用於 Ruby 的 SDK 3.x | 是 | |
適用於 Rust 的 SDK | 否 | |
適用於 Swift 的 SDK | 否 | |
PowerShell 的工具 | 是 | 參數未最佳化:connectTimeoutInMillis 、tlsNegotiationTimeoutInMillis 。 |