

 適用於 JavaScript 的 AWS SDK v2 已end-of-support。我們建議您遷移至 [適用於 JavaScript 的 AWS SDK v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)。如需如何遷移的其他詳細資訊和資訊，請參閱此[公告](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

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

# 使用全域組態物件
<a name="global-config-object"></a>

有兩種方式可以設定軟體開發套件：
+ 使用 `AWS.Config` 設定全域組態。
+ 將額外的組態資訊傳遞給服務物件。

使用 `AWS.Config` 設定全域組態的入門通常比較簡單，但服務層級組態可提供對個別服務的進一步控制。`AWS.Config` 指定的全球組態會為您後續建立的服務物件提供預設設定，可讓設定更簡單。然而，您可以在需求隨全域組態而變化時，更新個別服務物件的組態。

## 設定全域組態
<a name="setting-global-configuration"></a>

在您的程式碼中載入 `aws-sdk` 套件後，您可以使用 ` AWS` 全域變述來存取軟體開發套件的類別並與個別服務互動。該軟體開發套件包含的全域組態物件 `AWS.Config`，是您可以用來指定應用程式所需的軟體開發套件組態設定。

請根據您的應用程式需求設定 `AWS.Config` 屬性，來設定軟體開發套件。下表摘要說明一般用來設定軟體開發套件組態的 `AWS.Config` 屬性。


****  

| 組態選項 | Description | 
| --- | --- | 
|  credentials  | 「必要」。指定判斷服務和資源存取所用的登入資料。 | 
|  region  | 「必要」。指定為服務提出請求的區域。 | 
|  maxRetries  | 選用。指定特定請求重試的次數上限。 | 
|  logger  | 選用。指定要將偵錯資訊寫入其中的記錄器物件。 | 
|  update  | 選用。使用新值更新目前組態。 | 

如需組態物件的詳細資訊，請參閱《 API 參考[https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html)》中的 。

### 全域組態範例
<a name="global-configuration-examples"></a>

您必須在 `AWS.Config` 中設定區域和登入資料。您可以將這些屬性設為 `AWS.Config` 建構子的一部分，如下列瀏覽器指令碼範例所示：

```
var myCredentials = new AWS.CognitoIdentityCredentials({IdentityPoolId:'IDENTITY_POOL_ID'});
var myConfig = new AWS.Config({
  credentials: myCredentials, region: 'us-west-2'
});
```

您也可以在使用 `update` 方法建立 `AWS.Config` 後，設定這些屬性，如下更新該區域的範例所示：

```
myConfig = new AWS.Config();
myConfig.update({region: 'us-east-1'});
```

您可以呼叫 `AWS.config` 的靜態 ` getCredentials` 方法，取得您的預設登入資料：

```
var AWS = require("aws-sdk");

AWS.config.getCredentials(function(err) {
  if (err) console.log(err.stack);
  // credentials not loaded
  else {
    console.log("Access key:", AWS.config.credentials.accessKeyId);
  }
});
```

同樣地，如果您在 `config` 檔案中正確設定區域，您可以透過將`AWS_SDK_LOAD_CONFIG`環境變數設定為任何值並呼叫 的靜態`region`屬性來取得該值`AWS.config`：

```
var AWS = require("aws-sdk");

console.log("Region: ", AWS.config.region);
```

## 依服務設定組態
<a name="service-specific-configuration"></a>

您在適用於 JavaScript 的 SDK 中使用的每個服務，都會透過屬於該服務 API 一部分的服務物件存取。例如，若要存取 Amazon S3 服務，您可以建立 Amazon S3 服務物件。您可以指定組態設定，該設定是專屬於該服務物件之建構子的服務。當您在服務物件上設定組態值時，建構子會採用 `AWS.Config` 所用的所有組態值 (包含登入資料)。

例如，如果您需要存取多個區域中的 Amazon EC2 物件，請為每個區域建立 Amazon EC2 服務物件，然後相應地設定每個服務物件的區域組態。

```
var ec2_regionA = new AWS.EC2({region: 'ap-southeast-2', maxRetries: 15, apiVersion: '2014-10-01'});
var ec2_regionB = new AWS.EC2({region: 'us-east-1', maxRetries: 15, apiVersion: '2014-10-01'});
```

您也可以在使用 `AWS.Config` 設定軟體開發套件時，設定服務專屬的組態值。全域組態物件支援許多服務特定的組態選項。如需服務特定組態的詳細資訊，請參閱《 適用於 JavaScript 的 AWS SDK API 參考[https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html)》中的 。

## 固定組態資料
<a name="immutable-config"></a>

全域組態變更適用於所有新建立服務物件的請求。新建立服務物件的設定會先使用目前全域組態資料，然後再使用任何本機組態選項。您對全域 `AWS.config` 物件所做的更新不會套用至先前建立的服務物件。

您必須使用新組態資料來手動更新現有服務物件，或是您必須建立和使用具有新組態資料的新服務物件。下列範例會使用新的組態資料建立新的 Amazon S3 服務物件：

```
s3 = new AWS.S3(s3.config);
```