AWS 区域 - AWS SDK 和工具

AWS 区域

注意

如需获得相关帮助,以了解设置页面的布局或解释后面的 AWS SDK 和工具支持表,请参阅了解本指南的设置页面

AWS 区域是与 AWS 服务结合使用时需要理解的重要概念。

使用 AWS 区域,您可以访问实际驻留在特定地理区域的 AWS 服务。这可用于保证您的数据和应用程序接近您和用户访问它们的位置。区域提供容错能力、稳定性和弹性,还可以减少延迟。使用区域,您能够创建保持可用且不受区域中断影响的冗余资源。

大多数 AWS 服务请求都与特定的地理区域相关联。除非您明确使用 AWS 服务 提供的复制功能,否则在一个区域中创建的资源在任何其他区域中都不存在。例如,Amazon S3 和 Amazon EC2 支持跨区域复制。某些服务(例如 IAM)没有区域资源。

AWS 一般参考 包含有关以下内容的信息:

  • 要了解区域和端点之间的关系,并查看现有区域端点的列表,请参阅AWS服务端点

  • 要查看当前各 AWS 服务 所有支持的区域和端点列表,请参阅服务端点和限额

创建服务客户端

要以编程方式访问 AWS 服务,SDK 使用每个 AWS 服务 的客户端类/对象。例如,如果您的应用程序需要访问 Amazon EC2,则您的应用程序将创建一个 Amazon EC2 客户端对象来与该服务交互。

如果没有在代码本身中为客户端显式指定区域,则客户端将默认使用通过以下 region 设置设定的区域。但是,可以为任何单个客户端对象显式设置客户端的活动区域。以这种方式设置区域优先于该特定服务客户端的任何全局设置。备用区域是在该客户端的实例化过程中指定的,该区域特定于您的 SDK(请查看您的特定 SDK 指南或 SDK 的代码库)。

使用以下方法配置此功能:

region - 共享 AWS config 文件设置
AWS_REGION - 环境变量
aws.region:JVM 系统属性,仅适用于 Java/Kotlin

指定用于 AWS 请求的默认 AWS 区域。此区域用于未提供特定区域的 SDK 服务请求。

默认值:无。必须明确指定此值。

有效值:

  • 可用于所选服务的任何区域代码,有关列表,请参阅 AWS 一般参考中的 AWS 服务端点。例如,值 us-east-1 将端点设置为 AWS 区域美国东部(弗吉尼亚州北部)。

  • aws-global 为除了区域端点之外还支持单独的全局端点的服务指定全局端点,例如 AWS Security Token Service (AWS STS) 和 Amazon Simple Storage Service (Amazon S3)。

config 文件中设置此值的示例:

[default] region = us-west-2

Linux/macOS 通过命令行设置环境变量的示例:

export AWS_REGION=us-west-2

Windows 通过命令行设置环境变量的示例:

setx AWS_REGION us-west-2

大多数 SDK 都有“配置”对象,可用于在应用程序代码中设置默认区域。有关详细信息,请参阅您的特定 AWS SDK 开发人员指南。

AWS SDK 和工具支持

以下 SDK 支持本主题中所述的功能和设置。所有部分例外情况均已注明。任何 JVM 系统属性设置都仅支持 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK。

SDK 支持 备注或更多信息
AWS CLI v2 AWS CLI v2 在 AWS_DEFAULT_REGION 中的任何值之前使用 AWS_REGION 中的任何值(两个变量都被选中)。
AWS CLI v1 AWS CLI v1 使用名为 AWS_DEFAULT_REGION 的环境变量来实现此目的。
适用于 C++ 的 SDK
适用于 Go V2 (1.x) 的 SDK
适用于 Go 1.x(V1)的 SDK 要使用共享 config 文件设置,必须开启从配置文件加载的功能;请参阅会话
适用于 Java 2.x 的 SDK
适用于 Java 1.x 的 SDK
适用于 JavaScript 3.x 的 SDK
适用于 JavaScript 2.x 的 SDK
适用于 Kotlin 的 SDK
适用于 .NET 4.x 的 SDK
适用于 .NET 3.x 的 SDK
适用于 PHP 3.x 的 SDK
适用于 Python (Boto3) 的 SDK 此 SDK 使用名为 AWS_DEFAULT_REGION 的环境变量来实现此目的。
适用于 Ruby 3.x 的 SDK
适用于 Rust 的 SDK
适用于 Swift 的 SDK
Tools for PowerShell V5
Tools for PowerShell V4