本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在外部配置 适用于 PHP 的 AWS SDK 版本 3 的服务客户端
许多配置设置可以在代码之外处理。大多数配置设置可以设置为环境变量,也可以在单独的共享 AWS config
文件中设置。 AWS
共享config
文件可以维护单独的设置集(称为配置文件),以便为不同的环境或测试提供不同的配置。有关 AWS
共享credentials
文件config
和文件的完整讨论,请参阅AWS SDKs 和工具参考指南。
大多数环境变量和共享config
文件设置都是标准化的,并且是跨 AWS SDKs 工具共享的,以支持不同编程语言和应用程序之间的一致功能。
要查看 SDK 可以从环境变量或配置文件中解析的所有设置,请参阅AWS SDKs 和工具参考指南中的设置参考。
用于客户端配置的配置提供者链
SDK 会检查多个位置(或来源)以查找配置值。
-
在代码中或服务客户端本身上设置的任何显式设置均优先于其他任何设置。
-
环境变量
-
有关设置环境变量的详细信息,请参阅《工具参考指南》AWS SDKs 和《工具参考指南》中的环境变量。
-
请注意,您可以为不同级别的 shell 配置环境变量:系统范围、用户范围和特定的终端会话。
-
-
共享
config
文件和credentials
文件-
有关设置这些文件的详细信息,请参阅
config
和工具参考指南中的共享AWS SDKs 和credentials
文件。
-
-
最后使用 SDK 源代码本身提供的任何默认值。
-
某些属性(例如 “区域”)没有默认值。您必须在代码、环境设置或共享
config
文件中明确指定它们。如果 SDK 无法解析所需的配置,API 请求可能会在运行时失败。
-
除了这个通用配置链外, 适用于 PHP 的 AWS SDK 版本 3 还使用专门的提供者链,包括凭证提供程序链和AWS 区域 解析链。这些专门的链会添加其他提供商,这些提供商会考虑SDK的运行环境。例如,在容器或 EC2 实例中。
创建使用外部设置配置的服务客户端
您需要在应用程序中创建一个服务客户端才能与之通信 AWS 服务。服务客户是您与之建立联系的重要 AWS 服务纽带,可以处理所有复杂的沟通细节,因此您不必担心。它们会自动处理安全、错误处理和重试等重要任务,让您可以专注于构建应用程序,而不是处理复杂的技术问题。
使用不带参数的构造函数构造服务客户端
如果您需要的所有配置设置都来自外部来源,则可以使用空构造函数创建服务客户端:
require 'vendor/autoload.php'; use Aws\S3\S3Client; $s3 = new S3Client([]);
前面的代码片段创建了一个S3Client
实例。在创建过程中,SDK 会通过配置提供程序链查找设置。SDK 找到设置值后,就会使用该值。
创建过程中还将使用默认提供 AWS 区域 商链和默认凭证提供者链。在链的某个地方,SDK 必须解析 AWS 区域 要使用的,并找到使其能够检索签名请求的凭据的设置。如果要找到这些值的 SDKs 文件,则客户端创建失败。
适用于 PHP 的 AWS SDK 版本 3 环境变量
除了大多数人支持的交叉 SDK 设置外 AWS SDKs, 适用于 PHP 的 AWS SDK 版本 3 还可使用以下环境变量:
- AWS_SDK_加载_非默认_配置
-
设置后,此环境变量会指示 SDK 除 AWS
config
文件之外还从credentials
文件 (~/.aws/config
~/.aws/credential
) 加载凭证。 - AWS_SDK_UA_APP_ID
-
设置自定义应用程序标识符,该标识符将包含在 SDK 发出的请求的 User-Agent 标头中。
- AWS_SUPPRESS_PHP_DEPRECATION_WARNING
-
设置为 true 时,会抑制 SDK 可能生成的 PHP 弃用警告。