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