智慧型組態預設 - AWS SDKs 和 工具

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

智慧型組態預設

使用智慧型組態預設值功能, AWS SDKs可以為其他組態設定提供預先定義、最佳化的預設值。

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

defaults_mode-共享 AWS config檔案設定
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 ++ 未最佳化的參數:stsRegionalEndpointss3UsEast1RegionalEndpoints、、tlsNegotiationTimeoutInMillis
SDK對於轉到 V2(1.x) 未最佳化的參數:retryModestsRegionalEndpoints、、s3UsEast1RegionalEndpoints
SDK對於圍棋 1.x(V1)
SDK對於爪哇 2.x 未最佳化的參數:stsRegionalEndpoints
SDK對於爪哇 1.x
SDK對於 JavaScript 3. x 未最佳化的參數:stsRegionalEndpointss3UsEast1RegionalEndpoints、、tlsNegotiationTimeoutInMillisconnectTimeoutInMillis被稱為connectionTimeout
SDK對於 JavaScript 2.x
SDK對於科特林
SDK為. NET3.x 未最佳化的參數:connectTimeoutInMillistlsNegotiationTimeoutInMillis
SDK對於 PHP 3. x 未最佳化的參數:tlsNegotiationTimeoutInMillis
SDK對於 Python(肉毒桿菌 3) 未最佳化的參數:tlsNegotiationTimeoutInMillis
SDK對於紅寶石 3.x
SDK對於銹
SDK為斯威夫特
用於的工具 PowerShell 未最佳化的參數:connectTimeoutInMillistlsNegotiationTimeoutInMillis