本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为适用于 PHP 的 AWS SDK 版本 3 设置 AWS 区域
SDK 客户端会连接到您在创建客户端时指定的特定 AWS 区域中的 AWS 服务。借助此配置,您的应用程序可以与该地理区域中的 AWS 资源进行交互。当您在未明确设置区域的情况下创建服务客户端时,SDK 将使用外部配置中的默认区域。
区域解析链
适用于 PHP 的 AWS SDK 版本 3 使用以下顺序来确定服务客户端使用哪个区域:
-
代码中提供的区域 — 如果您在客户端构造函数选项中显式设置了区域,则该区域优先于所有其他来源。
$s3Client = new Aws\S3\S3Client([ 'region' => 'us-west-2' ]); -
环境变量 — 如果代码中未提供区域,SDK 将按顺序检查以下环境变量:
AWS_REGIONAWS_DEFAULT_REGION
# Example of setting Region through environment variables. export AWS_REGION=us-east-1 -
AWS 配置文件 — 如果未设置区域环境变量,SDK 将检查 AWS 配置文件:
-
SDK 在
~/.aws/config(或AWS_CONFIG_FILE环境变量指定的位置)中查找 -
SDK 在
AWS_PROFILE环境变量指定的配置文件中检查区域设置 -
如果未指定
AWS_PROFILE,则 SDK 使用“default”配置文件
例如,假设我们有以下配置文件设置:
# Example ~/.aws/config file. [default] region = eu-west-1 [profile production] region = eu-central-1如果将
AWS_PROFILE环境变量的值设置为“production”,则客户端使用eu-central-1 Region。如果不存在AWS_PROFILE环境变量,则客户端使用eu-west-1区域。 -
-
如果 SDK 在上述任何来源中均未找到区域值,则会引发异常,因为区域值是服务客户端的一项必需设置。
最佳实践
在适用于 PHP 的 AWS SDK 版本 3 中处理区域时,请考虑以下最佳实践:
- 在生产代码中显式设置区域
-
对于生产应用程序,我们建议在代码中显式设置区域,而不是依赖环境变量或
config。这使得您的代码更具可预测性,并且减少了对外部配置的依赖。 - 在开发和测试环境中使用环境变量
-
对于开发和测试环境,使用环境变量可以提高灵活性,而无需更改代码。
- 在多个环境中使用配置文件
-
如果您的应用程序需要在多个 AWS 环境中运行,请考虑在 AWS
config文件中使用不同的配置文件并根据需要在它们之间切换。