本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
智慧型組態預設
使用智慧型組態預設值功能, AWS SDKs可以為其他組態設定提供預先定義、最佳化的預設值。
使用下列項目設定此功能:
defaults_mode
-共享 AWSconfig
檔案設定AWS_DEFAULTS_MODE
-環境變量aws.defaultsMode
-JVM 系統屬性:僅限爪哇/科特林-
使用此設定,您可以選擇與應用程式架構保持一致的模式,然後為您的應用程式提供最佳化的預設值。如果 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嘗試探索執行階段環境以自動判斷適當的設定。auto 檢測是基於啟發式的,不提供 100% 的準確性。如果無法確定運行時環境,則使用standard
模式。auto 偵測可能會查詢執行個體中繼資料,這可能會導致延遲。如果啟動延遲對您的應用程式很重要,我們建議您defaults_mode
改為選擇明確的。
在
config
檔案中設定此值的範例:[default]
defaults_mode
= standard下列參數可能會根據選取項目進行最佳化
defaults_mode
:-
retryMode
— 指定嘗試重SDK試的方式。請參閱 重試行為。 -
stsRegionalEndpoints
— 指定如何SDK決定 AWS 服務 它用來與之交談的端點 AWS Security Token Service (AWS STS). 請參閱AWS STS 區域端點。 -
s3UsEast1RegionalEndpoints
— 指定如何SDK決定 AWS 它用來與該us-east-1
區域的 Amazon S3 通訊的服務端點。 -
connectTimeoutInMillis
-在套接字上進行初始連接嘗試後,超時之前的時間量。如果用戶端沒有收到連線握手的完成,用戶端就會放棄並失敗作業。 -
tlsNegotiationTimeoutInMillis
— TLS 握手從傳送CLIENTHELLO訊息到用戶端和伺服器已完全協商加密和交換金鑰之後所需的時間上限。
-
每個設定的預設值會根據您為應用程式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支援本主題中描述的功能和設定。注意到任何部分例外情況。任何JVM系統屬性設定都受到 AWS SDK for Java 和 適用於 Kotlin 的 AWS SDK 只有。
SDK | 支援 | 備註或更多資訊 |
---|---|---|
AWS CLI V2 | 否 | |
SDK對於 C ++ | 是 | 未最佳化的參數:stsRegionalEndpoints s3UsEast1RegionalEndpoints 、、tlsNegotiationTimeoutInMillis 。 |
SDK對於轉到 V2(1.x) |
是 | 未最佳化的參數:retryMode stsRegionalEndpoints 、、s3UsEast1RegionalEndpoints 。 |
SDK對於圍棋 1.x(V1) | 否 | |
SDK對於爪哇 2.x | 是 | 未最佳化的參數:stsRegionalEndpoints 。 |
SDK對於爪哇 1.x | 否 | |
SDK對於 JavaScript 3. x | 是 | 未最佳化的參數:stsRegionalEndpoints s3UsEast1RegionalEndpoints 、、tlsNegotiationTimeoutInMillis 。 connectTimeoutInMillis 被稱為connectionTimeout 。 |
SDK對於 JavaScript 2.x | 否 | |
SDK對於科特林 | 否 | |
SDK為. NET3.x | 是 | 未最佳化的參數:connectTimeoutInMillis 、tlsNegotiationTimeoutInMillis 。 |
SDK對於 PHP 3. x | 是 | 未最佳化的參數:tlsNegotiationTimeoutInMillis 。 |
SDK對於 Python(肉毒桿菌 3) |
是 | 未最佳化的參數:tlsNegotiationTimeoutInMillis 。 |
SDK對於紅寶石 3.x | 是 | |
SDK對於銹 | 否 | |
SDK為斯威夫特 | 否 | |
用於的工具 PowerShell | 是 | 未最佳化的參數:connectTimeoutInMillis 、tlsNegotiationTimeoutInMillis 。 |