在外部配置 适用于 PHP 的 AWS SDK 版本 3 的服务客户端 - 适用于 PHP 的 AWS SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在外部配置 适用于 PHP 的 AWS SDK 版本 3 的服务客户端

许多配置设置可以在代码之外处理。大多数配置设置可以设置为环境变量,也可以在单独的共享 AWS config文件中设置。 AWS 共享config文件可以维护单独的设置集(称为配置文件),以便为不同的环境或测试提供不同的配置。有关 AWS 共享credentials文件config和文件的完整讨论,请参阅AWS SDKs 和工具参考指南

大多数环境变量和共享config文件设置都是标准化的,并且是跨 AWS SDKs 工具共享的,以支持不同编程语言和应用程序之间的一致功能。

要查看 SDK 可以从环境变量或配置文件中解析的所有设置,请参阅AWS SDKs 和工具参考指南中的设置参考

用于客户端配置的配置提供者链

SDK 会检查多个位置(或来源)以查找配置值。

  1. 在代码中或服务客户端本身上设置的任何显式设置均优先于其他任何设置。

  2. 环境变量

    • 有关设置环境变量的详细信息,请参阅《工具参考指南》AWS SDKs 和《工具参考指南》中的环境变量

    • 请注意,您可以为不同级别的 shell 配置环境变量:系统范围、用户范围和特定的终端会话。

  3. 共享config文件和credentials文件

  4. 最后使用 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 弃用警告。