本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
智能配置默认值
借助智能配置默认值功能, AWS SDKs可以为其他配置设置提供预定义的、优化的默认值。
使用以下方法配置此功能:
defaults_mode
-共享 AWSconfig
文件设置AWS_DEFAULTS_MODE
- 环境变量aws.defaultsMode
-JVM 系统属性:仅限 Java/Kotlin-
使用此设置,您可以选择与您的应用程序架构相匹配的模式,然后为您的应用程序提供经过优化的默认值。如果 AWS SDK设置中明确设置了值,则该值始终优先。如果某个 AWS SDK设置没有明确设置值,并且
defaults_mode
不等于旧版,则此功能可以为针对您的应用程序优化的各种设置提供不同的默认值。设置可能包括以下内容:HTTP通信设置、重试行为、服务区域终端节点设置,可能还包括任何SDK相关配置。使用此功能的客户可以获得针对常见使用场景量身定制的新配置默认值。如果不等于legacy
,我们建议您在升级时对您的应用程序进行测试SDK,因为提供的默认值可能会随着最佳实践的发展而改变。defaults_mode
默认值:
legacy
注意:will 的新主要SDKs版本默认为
standard
。有效值:
-
legacy
— 提供默认设置,这些设置因而异,SDK并且在建立之前就已存在defaults_mode
。 -
standard
– 提供最新的推荐默认值,这些默认值在大多数情况下都应该可以安全运行。 -
in-region
— 基于标准模式构建,包括为 AWS 服务 从标准模式内部调用的应用程序量身定制的优化 AWS 区域。 -
cross-region
— 基于标准模式构建,包括为调用不同区域的应用程序量身定制 AWS 服务 的优化。 -
mobile
– 基于标准模式构建,包括为移动应用程序量身定制的优化。 -
auto
– 基于标准模式构建,包括实验功能。SDK尝试发现运行时环境以自动确定适当的设置。自动检测是基于启发式的,无法提供 100% 的准确性。如果无法确定运行时系统环境,则使用standard
模式。auto 检测可能会查询实例元数据,这可能会带来延迟。如果启动延迟对您的应用程序而言至关重要,我们建议您改为选择显式defaults_mode
延迟。
在
config
文件中设置此值的示例:[default]
defaults_mode
= standard以下参数可能会根据
defaults_mode
的选项进行优化:-
retryMode
— 指定SDK尝试的重试方式。请参阅 重试行为。 -
stsRegionalEndpoints
— 指定如何SDK确定它用来与 AWS Security Token Service (AWS STS) 通信的 AWS 服务 端点。请参阅 AWS STS 区域化终端节点。 -
s3UsEast1RegionalEndpoints
— 指定如何SDK确定用于与该us-east-1
区域的 Amazon S3 通信的 AWS 服务终端节点。 -
connectTimeoutInMillis
– 在套接字上进行初始连接尝试后,超时之前的时长。如果客户端没有收到连接握手完成的消息,则客户端会放弃操作并使其失败。 -
tlsNegotiationTimeoutInMillis
— 从发送CLIENTHELLO消息到客户端和服务器完全协商密码并交换密钥为止,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
,则将为retry_mode
分配standard
的值(来自有效的retry_mode
选项),将为stsRegionalEndpoints
分配regional
的值(来自有效stsRegionalEndpoints
选项)。
兼容 AWS SDKs
以下内容SDKs支持本主题中描述的功能和设置。所有部分例外情况均已注明。 AWS SDK for Java 和 AWS SDK for Kotlin 唯一支持任何JVM系统属性设置。
SDK | 支持 | 备注或更多信息 |
---|---|---|
AWS CLI v2 | 否 | |
SDK对于 C++ | 是 | 参数未优化:stsRegionalEndpoints 、s3UsEast1RegionalEndpoints 、tlsNegotiationTimeoutInMillis 。 |
SDK适用于 Go V2 (1.x) |
是 | 参数未优化:retryMode 、stsRegionalEndpoints 、s3UsEast1RegionalEndpoints 。 |
SDK适用于 Go 1.x (V1) | 否 | |
SDK适用于 Java 2.x | 是 | 参数未优化:stsRegionalEndpoints 。 |
SDK适用于 Java 1.x | 否 | |
SDK适用于 JavaScript 3.x | 是 | 参数未优化:stsRegionalEndpoints 、s3UsEast1RegionalEndpoints 、tlsNegotiationTimeoutInMillis 。connectTimeoutInMillis 被称为 connectionTimeout 。 |
SDK适用于 JavaScript 2.x | 否 | |
SDK对于 Kotlin 来说 | 否 | |
SDK对于。 NET3.x | 是 | 参数未优化:connectTimeoutInMillis 、tlsNegotiationTimeoutInMillis 。 |
SDK适用于 PHP 3.x | 是 | 参数未优化:tlsNegotiationTimeoutInMillis 。 |
SDK适用于 Python (Boto3) |
是 | 参数未优化:tlsNegotiationTimeoutInMillis 。 |
SDK适用于 Ruby 3.x | 是 | |
SDK对于 Rust | 否 | |
用于 PowerShell | 是 | 参数未优化:connectTimeoutInMillis 、tlsNegotiationTimeoutInMillis 。 |