

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

# AWS 區域 設定第 3 適用於 PHP 的 AWS SDK 版的
<a name="aws-php-sdk-region-resolution"></a>

SDK 用戶端會連接到 AWS 區域 您在建立用戶端時指定的特定 AWS 服務 中的 。此組態可讓您的應用程式與該地理區域 AWS 的資源互動。當您在不明確設定區域的情況下建立服務用戶端時，軟體開發套件會使用外部組態的預設區域。

## 區域解析鏈
<a name="region-resolution-chain"></a>

第 3 適用於 PHP 的 AWS SDK 版使用下列順序來判斷服務用戶端使用的區域：

1. 程式碼中提供的區域 - 如果您在用戶端建構函數選項中明確設定區域，這優先於所有其他來源。

   ```
   $s3Client = new Aws\S3\S3Client([
       'region' => 'us-west-2'
   ]);
   ```

1. 環境變數 - 如果程式碼中未提供任何區域，軟體開發套件會依序檢查這些環境變數：
   + `AWS_REGION`
   + `AWS_DEFAULT_REGION`

   ```
   # Example of setting Region through environment variables.
   export AWS_REGION=us-east-1
   ```

1. AWS 組態檔案 - 如果未設定區域環境變數，軟體開發套件會檢查 AWS 組態檔案：

   1. SDK 會尋找 `~/.aws/config`（或`AWS_CONFIG_FILE`環境變數指定的位置）

   1. SDK 會檢查`AWS_PROFILE`環境變數所指定設定檔內的區域設定

   1. 如果未指定 `AWS_PROFILE` ，軟體開發套件會使用「預設」描述檔

   例如，假設我們具有下列組態檔案設定：

   ```
   # Example ~/.aws/config file.
   [default]
   region = eu-west-1
   
   [profile production]
   region = eu-central-1
   ```

   如果`AWS_PROFILE`環境變數設定為「生產」值，用戶端會使用 `eu-central-1 Region`。如果沒有`AWS_PROFILE`環境變數，用戶端會使用 `eu-west-1`區域。

1. 如果開發套件在上述任何來源中找不到區域值，則會擲回例外狀況，因為區域值是服務用戶端的必要設定。

## 最佳實務
<a name="region-resolution-best-practices"></a>

使用第 3 適用於 PHP 的 AWS SDK 版中的區域時，請考慮下列最佳實務：

**在生產程式碼中明確設定區域**  
對於生產應用程式，我們建議您在程式碼中明確設定區域，而不是依賴環境變數或 `config`。這可讓您的程式碼更可預測，並減少對外部組態的依賴。

**使用環境變數進行開發和測試**  
對於開發和測試環境，使用環境變數可提供更多彈性，而無需變更程式碼。

**使用多個環境的設定檔**  
如果您的應用程式需要使用多個 AWS 環境，請考慮在您的 AWS `config` 檔案中使用不同的設定檔，並視需要在它們之間切換。