

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在外部設定第 3 適用於 PHP 的 AWS SDK 版的服務用戶端
<a name="configuring-service-clients-ext"></a>

許多組態設定可以在程式碼之外處理。大多數組態設定可以設定為環境變數或單獨的共用 AWS `config`檔案中。 AWS 共用`config`檔案可以維護個別的設定集，稱為設定檔，為不同的環境或測試提供不同的組態。如需共用 AWS `config`和 `credentials` 檔案的完整討論，請參閱 [https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)。

大多數的環境變數和共用`config`檔案設定會在 AWS SDKs 和工具之間標準化和共用，以支援不同程式設計語言和應用程式的一致功能。

若要查看開發套件可從環境變數或組態檔案解析的所有設定，請參閱開發套件和工具參考指南中的[設定](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)參考。 *AWS SDKs *

## 用戶端組態的組態提供者鏈結
<a name="configuration-provider-chain"></a>

軟體開發套件會檢查多個位置 （或來源） 來尋找組態值。

1. 程式碼中或服務用戶端本身上設定的任何明確設定，都優先於任何其他設定。

1. 環境變數
   + 如需設定環境變數的詳細資訊，請參閱 *AWS SDKs和工具參考指南*中的[環境變數](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html)。
   + 請注意，您可以為殼層設定不同範圍的環境變數：全系統、全使用者和特定終端機工作階段。

1. 共用 `config`和 `credentials` 檔案
   + 如需設定這些檔案的詳細資訊，請參閱 SDK [`config`和工具參考指南中的共用 和 `credentials` 檔案](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)。 *AWS SDKs *

1. 開發套件原始碼本身提供的任何預設值都會最後使用。
   + 有些屬性，例如區域，沒有預設值。您必須在程式碼、環境設定或共用`config`檔案中明確指定它們。如果 SDK 無法解析所需的組態，API 請求可能會在執行時間失敗。

除了此一般組態鏈之外，第 3 適用於 PHP 的 AWS SDK 版也使用專門的提供者鏈，包括[登入資料提供者鏈](guide_credentials_default_chain.md)和[AWS 區域 解析鏈](aws-php-sdk-region-resolution.md#region-resolution-chain)。這些特殊化鏈結新增了額外的供應商，這些供應商會將 SDK 正在執行的環境納入考量。例如，在容器或 EC2 執行個體中。

## 建立使用外部設定設定的 服務用戶端
<a name="create-client-ext-conf"></a>

您需要在應用程式中建立服務用戶端，才能與 通訊 AWS 服務。服務用戶端是您與 的基本連線 AWS 服務，可處理所有複雜的通訊詳細資訊，讓您不必擔心。它們會自動處理安全、錯誤處理和重試等重要任務，讓您專注於建置應用程式，而不是處理技術複雜性。

### 使用沒有參數的建構函數來建構服務用戶端
<a name="create-client-ext-builder"></a>

如果您需要的所有組態設定都來自外部來源，您可以使用空的建構函數來建立服務用戶端：

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;

$s3 = new S3Client([]);
```

先前的程式碼片段會建立`S3Client`執行個體。在建立期間，軟體開發套件會查看組態提供者鏈中的設定。一旦軟體開發套件找到設定值，就會使用該值。

預設 AWS 區域 提供者鏈和預設登入資料提供者鏈也會用於建立程序。在鏈結中的某處，開發套件必須解析 AWS 區域 以使用和尋找設定，讓它能夠擷取簽署請求的登入資料。如果 SDK 找不到這些值，則用戶端建立會失敗。

## 適用於 PHP 的 AWS SDK 第 3 版環境變數
<a name="java-ext-config"></a>

除了 AWS SDKs支援的[跨磁碟設定](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#settingsPages)之外，第 3 適用於 PHP 的 AWS SDK 版適用於下列環境變數：

**AWS\$1SDK\$1LOAD\$1NONDEFAULT\$1CONFIG**  
設定時，此環境變數會指示 SDK 從 AWS `config`檔案 (`~/.aws/config`) 載入登入資料，以及`credentials`檔案 (`~/.aws/credential`)。

**AWS\$1SDK\$1UA\$1APP\$1ID**  
針對 SDK 提出的請求，設定包含在 User-Agent 標頭中的自訂應用程式識別符。

**AWS\$1SUPPRESS\$1PHP\$1DEPRECATION\$1WARNING**  
 當設定為 true 時， 會隱藏軟體開發套件可能產生的 PHP 棄用警告。