

 適用於 .NET 的 AWS SDK V3 已進入維護模式。

我們建議您遷移至 [適用於 .NET 的 AWS SDK V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html)。如需如何遷移的其他詳細資訊和資訊，請參閱我們的[維護模式公告](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)。

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

# 的組態檔案參考 適用於 .NET 的 AWS SDK
<a name="net-dg-config-ref"></a>

**注意**  
本主題中的資訊專屬於以 .NET Framework 為基礎的專案。根據預設， `App.config`和 `Web.config` 檔案不會出現在以 .NET Core 為基礎的專案中。

## 開啟以檢視 .NET Framework 內容
<a name="w2aab9c31c11b5b1"></a>

您可以使用 .NET 專案的 `App.config`或 `Web.config` 檔案來指定 AWS 設定，例如 AWS 登入資料、記錄選項、 AWS 服務端點和 AWS 區域，以及一些 AWS 服務設定，例如 Amazon DynamoDB、Amazon EC2 和 Amazon S3。以下資訊說明如何正確地格式化 `App.config` 或 `Web.config` 檔案，以指定這些類型的設定。

**注意**  
雖然您可以繼續使用 `App.config`或 `Web.config` 檔案中的 `<appSettings>` 元素來指定 AWS 設定，但我們建議您如本主題稍後所述使用 `<configSections>`和 `<aws>`元素。如需 `<appSettings>`元素的詳細資訊，請參閱[設定 適用於 .NET 的 AWS SDK 應用程式](net-dg-config.md)中的 `<appSettings>`元素範例。

**注意**  
雖然您可以繼續使用程式碼檔案中的下列[https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html)類別屬性來指定 AWS 設定，但下列屬性已棄用，未來版本可能不支援：  
 `DynamoDBContextTableNamePrefix` 
 `EC2UseSignatureVersion4` 
 `LoggingOptions` 
 `LogMetrics` 
 `ResponseLoggingOption` 
 `S3UseSignatureVersion4` 
一般而言，建議您不要在程式碼檔案中使用`AWSConfigs`類別屬性來指定 AWS 設定，而是使用 `App.config`或 `Web.config` 檔案中的 `<configSections>`和 `<aws>`元素來指定 AWS 設定，如本主題稍後所述。如需上述屬性的詳細資訊，請參閱[設定 適用於 .NET 的 AWS SDK 應用程式](net-dg-config.md)中的`AWSConfigs`程式碼範例。

**Topics**
+ [宣告 AWS 設定區段](#net-dg-config-ref-declaring)
+ [允許的元素](#net-dg-config-ref-elements)
+ [元素參考](#net-dg-config-ref-elements-ref)

### 宣告 AWS 設定區段
<a name="net-dg-config-ref-declaring"></a>

您可以從 `<aws>`元素的 `App.config`或 `Web.config` 檔案中指定 AWS 設定。在您開始使用 `<aws>` 元素前，您必須建立一個 `<section>` 元素 (為 `<configSections>` 元素的子元素)，並設其本身的 `name` 屬性為 `aws`，其本身的 `type` 屬性為 `Amazon.AWSSection, AWSSDK.Core`，如以下範例所示：

```
<?xml version="1.0"?>
<configuration>
  ...
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
  </configSections>
  <aws>
    <!-- Add your desired AWS settings declarations here. -->
  </aws>
  ...
</configuration>
```

Visual Studio 編輯器不提供 `<aws>` 元素或其子元素完成自動的程式碼 (IntelliSense)。

為了協助您建立 `<aws>` 元素的正確格式版本，請呼叫 `Amazon.AWSConfigs.GenerateConfigTemplate` 方法。此輸出 `<aws>` 元素的正式版本，適合列印字串的方式，可依您的需求調整。以下章節說明 `<aws>` 元素的屬性和子元素。

### 允許的元素
<a name="net-dg-config-ref-elements"></a>

以下是設定區段中 AWS 允許元素之間的邏輯關係清單。您可以呼叫 `Amazon.AWSConfigs.GenerateConfigTemplate` 方法產生最新的版本，也會輸出 `<aws>` 元素的正式版本，以字串方式呈現，所以您可以依需求調整。

```
<aws
  endpointDefinition="string value"
  region="string value"
  profileName="string value"
  profilesLocation="string value">
  <logging
    logTo="None, Log4Net, SystemDiagnostics"
    logResponses="Never | OnError | Always"
    logMetrics="true | false"
    logMetricsFormat="Standard | JSON"
    logMetricsCustomFormatter="NameSpace.Class, Assembly" />
  <dynamoDB
    conversionSchema="V1 | V2">
    <dynamoDBContext
      tableNamePrefix="string value">
      <tableAliases>
        <alias
          fromTable="string value"
          toTable="string value" />
      </tableAliases>
      <map
        type="NameSpace.Class, Assembly"
        targetTable="string value">
        <property
          name="string value"
          attribute="string value"
          ignore="true | false"
          version="true | false"
          converter="NameSpace.Class, Assembly" />
      </map>
    </dynamoDBContext>
  </dynamoDB>
  <s3
    useSignatureVersion4="true | false" />
  <ec2
    useSignatureVersion4="true | false" />
  <proxy
    host="string value"
    port="1234"
    username="string value"
    password="string value" />
</aws>
```

### 元素參考
<a name="net-dg-config-ref-elements-ref"></a>

以下是 AWS 設定區段中允許的元素清單。允許每個元素的屬性和其父子元素都已列出。

**Topics**
+ [別名](#net-dg-config-ref-elements-alias)
+ [`aws`](#net-dg-config-ref-elements-aws)
+ [dynamoDB](#net-dg-config-ref-elements-dynamodb)
+ [dynamoDBContext](#net-dg-config-ref-elements-ddbcontext)
+ [ec2](#net-dg-config-ref-elements-ec2)
+ [日誌](#net-dg-config-ref-elements-logging)
+ [映射](#net-dg-config-ref-elements-map)
+ [屬性](#net-dg-config-ref-elements-property)
+ [proxy](#net-dg-config-ref-elements-proxy)
+ [s3](#net-dg-config-ref-elements-s3)

#### 別名
<a name="net-dg-config-ref-elements-alias"></a>

`<alias>` 元素表示在一個或多個從表格 (from-table) 至到表格 (to-table) 對應的單一項目，為類型設定指定不同的表格。此元素會對應到 適用於 .NET 的 AWS SDK之 `Amazon.AWSConfigs.DynamoDBConfig.Context.TableAliases` 屬性中 `Amazon.Util.TableAlias` 類別的執行個體。在套用表格的前綴名稱前，會完成重新對應。

這個元素可以包含下列屬性：

** `fromTable` **  
從表格 (from-table) 至到表格 (to-table) 對應的從表格 (from-table) 部分。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.TableAlias.FromTable` 屬性。

** `toTable` **  
從表格 (from-table) 至到表格 (to-table) 對應的至表格 (to-table) 部分。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.TableAlias.ToTable` 屬性。

`<alias>` 元素的父系為 `<tableAliases>` 元素。

`<alias>` 元素不含子元素。

以下為範例使用的 `<alias>` 元素：

```
<alias
  fromTable="Studio"
  toTable="Studios" />
```

#### `aws`
<a name="net-dg-config-ref-elements-aws"></a>

`<aws>` 元素代表 AWS 設定區段中最上層的元素。這個元素可以包含下列屬性：

** `endpointDefinition` **  
自訂組態檔案的絕對路徑，定義要使用 AWS 的區域和端點。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.EndpointDefinition` 屬性。

** `profileName` **  
用於進行服務呼叫之已儲存 AWS 登入資料的設定檔名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.AWSProfileName` 屬性。

** `profilesLocation` **  
與其他 AWS SDKs 共用的登入資料檔案位置的絕對路徑。預設情況下，登入資料檔案存放於目前使用者主目錄的 `.aws` 目錄中。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.AWSProfilesLocation` 屬性。

** `region` **  
未明確指定 AWS 區域之用戶端的預設區域 ID。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.AWSRegion` 屬性。

`<aws>` 元素沒有父元素。

`<aws>` 元素可以含有以下的子元素：
+  `<dynamoDB>` 
+  `<ec2>` 
+  `<logging>` 
+  `<proxy>` 
+  `<s3>` 

以下為範例使用的 `<aws>` 元素：

```
<aws
  endpointDefinition="C:\Configs\endpoints.xml"
  region="us-west-2"
  profileName="development"
  profilesLocation="C:\Configs">
  <!-- ... -->
</aws>
```

#### dynamoDB
<a name="net-dg-config-ref-elements-dynamodb"></a>

`<dynamoDB>` 元素代表 AmazonDynamoDB 設定的設定集合。這個元素可以包含 *conversionSchema* 屬性，這代表使用 .NET 和 DynamoDB 物件之間轉換。允許值包含 V1 和 V2。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.DynamoDBv2.DynamoDBEntryConversion` 類別。如需詳細資訊，請參閱 [DynamoDB 系列 - 轉換結構描述](http://blogs.aws.amazon.com/net/post/Tx2TCOGWG7ARUH5/DynamoDB-Series-Conversion-Schemas)。

`<dynamoDB>` 元素的父系為 `<aws>` 元素。

`<dynamoDB>` 元素可以含有 `<dynamoDBContext>` 子元素。

以下為範例使用的 `<dynamoDB>` 元素：

```
<dynamoDB
  conversionSchema="V2">
  <!-- ... -->
</dynamoDB>
```

#### dynamoDBContext
<a name="net-dg-config-ref-elements-ddbcontext"></a>

`<dynamoDBContext>` 元素代表 Amazon DynamoDB 內容專屬的設定集合。這個元素可以包含 *tableNamePrefix* 屬性，這代表 DynamoDB 內容將使用預設的表格的前綴名稱，如果未手動設定的話。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.DynamoDBConfig.Context.TableNamePrefix` 屬性對應到 `Amazon.Util.DynamoDBContextConfig.TableNamePrefix` 屬性。如需詳細資訊，請參閱 [DynamoDB 開發套件的增強功能](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK)。

`<dynamoDBContext>` 元素的父系為 `<dynamoDB>` 元素。

`<dynamoDBContext>` 元素可以含有以下的子元素：
+  `<alias>` (一個或多個執行個體)
+  `<map>` (一個或多個執行個體)

以下為範例使用的 `<dynamoDBContext>` 元素：

```
<dynamoDBContext
  tableNamePrefix="Test-">
  <!-- ... -->
</dynamoDBContext>
```

#### ec2
<a name="net-dg-config-ref-elements-ec2"></a>

`<ec2>` 元素代表 Amazon EC2 設定的集合。這個元素可以包含 *useSignatureVersion4* 屬性，指定第四版的簽章簽署將用於所有請求 (true) 或第四版的簽章簽署將不會用於所有請求 (false，預設)。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.EC2Config.UseSignatureVersion4` 屬性對應到 `Amazon.Util.EC2Config.UseSignatureVersion4` 屬性。

`<ec2>` 的父系為此元素。

`<ec2>` 元素不含子元素。

以下為範例使用的 `<ec2>` 元素：

```
<ec2
  useSignatureVersion4="true" />
```

#### 日誌
<a name="net-dg-config-ref-elements-logging"></a>

`<logging>` 元素表示回應日誌記錄和效能指標記錄的設定集合。這個元素可以包含下列屬性：

** `logMetrics` **  
無論效能指標記錄是否適用於所有用戶端和組態 (true)，否則 false。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.LoggingConfig.LogMetrics` 屬性對應到 `Amazon.Util.LoggingConfig.LogMetrics` 屬性。

** `logMetricsCustomFormatter` **  
用於記錄指標的自訂格式化之資料類型和組件名稱。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.LoggingConfig.LogMetricsCustomFormatter` 屬性對應到 `Amazon.Util.LoggingConfig.LogMetricsCustomFormatter` 屬性。

** `logMetricsFormat` **  
記錄指標的顯示格式 (從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.LoggingConfig.LogMetricsFormat` 屬性對應到 `Amazon.Util.LoggingConfig.LogMetricsFormat` 屬性)。  
允許數值包括：    
** `JSON` **  
使用 JSON 格式。  
** `Standard` **  
使用預設格。

** `logResponses` **  
日誌服務回應的時機 (從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.LoggingConfig.LogResponses` 屬性對應到 `Amazon.Util.LoggingConfig.LogResponses` 屬性)。  
允許數值包括：    
** `Always` **  
一直記錄服務回應。  
** `Never` **  
永遠不用記錄服務回應。  
** `OnError` **  
只在發生錯誤時，記錄服務回應。

** `logTo` **  
登入位置 （從 中的 `LogTo` 屬性映射至 `Amazon.AWSConfigs.LoggingConfig.LogTo` 屬性 適用於 .NET 的 AWS SDK)。  
允許的值包含一個或多個：    
** `Log4Net` **  
記錄到 log4net。  
** `None` **  
停用日誌記錄。  
** `SystemDiagnostics` **  
記錄到 System.Diagnostics。

`<logging>` 元素的父系為 `<aws>` 元素。

`<logging>` 元素不含子元素。

以下為範例使用的 `<logging>` 元素：

```
<logging
  logTo="SystemDiagnostics"
  logResponses="OnError"
  logMetrics="true"
  logMetricsFormat="JSON"
  logMetricsCustomFormatter="MyLib.Util.MyMetricsFormatter, MyLib" />
```

#### 映射
<a name="net-dg-config-ref-elements-map"></a>

`<map>` 元素表示從 .NET 類型對應到 DynamoDB 資料表 (從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings` 屬性對應到 `TypeMapping` 類別的執行個體) 之類型到資料表 (type-to-table) 對應集合中的單一項目，如需詳細資訊，請參閱 [DynamoDB 開發套件的增強功能](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK)。

這個元素可以包含下列屬性：

** `targetTable` **  
對應套用的 DynamoDB 表格。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.TypeMapping.TargetTable` 屬性。

** `type` **  
對應套用的類型和組件名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.TypeMapping.Type` 屬性。

`<map>` 元素的父系為 `<dynamoDBContext>` 元素。

`<map>` 元素可以包含 `<property>` 子元素的一個或多個執行個體。

以下為範例使用的 `<map>` 元素：

```
<map
  type="SampleApp.Models.Movie, SampleDLL"
  targetTable="Movies">
  <!-- ... -->
</map>
```

#### 屬性
<a name="net-dg-config-ref-elements-property"></a>

`<property>` 元素表示 DynamoDB 屬性。（此元素對應至 中 `AddProperty`方法的 Amazon.Util.PropertyConfig 類別執行個體 適用於 .NET 的 AWS SDK) 如需詳細資訊，請參閱 [ DynamoDB SDK 和 DynamoDB 屬性的增強功能](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK)。 [DynamoDB ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DeclarativeTagsList.html)

這個元素可以包含下列屬性：

** `attribute` **  
屬性的屬性名稱，例如範圍金鑰的名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.PropertyConfig.Attribute` 屬性。

** `converter` **  
此屬性應使用的轉換器類型。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.PropertyConfig.Converter` 屬性。

** `ignore` **  
此關聯的屬性是否應該被忽略 (true)；否則為 false。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.PropertyConfig.Ignore` 屬性。

** `name` **  
屬性的名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.PropertyConfig.Name` 屬性。

** `version` **  
此屬性是否應該存放項目版本編號 (true)；否則為 false。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.Util.PropertyConfig.Version` 屬性。

`<property>` 元素的父系為 `<map>` 元素。

`<property>` 元素不含子元素。

以下為範例使用的 `<property>` 元素：

```
<property
  name="Rating"
  converter="SampleApp.Models.RatingConverter, SampleDLL" />
```

#### proxy
<a name="net-dg-config-ref-elements-proxy"></a>

`<proxy>` 元素表示用於設定 適用於 .NET 的 AWS SDK 要使用之代理程式的設定。這個元素可以包含下列屬性：

**託管**  
代理伺服器的主機名稱或 IP 地址。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.ProxyConfig.Host` 屬性對應到 `Amazon.Util.ProxyConfig.Host` 屬性。

**密碼**  
此密碼使用代理伺服器的進行身分驗證。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.ProxyConfig.Password` 屬性對應到 `Amazon.Util.ProxyConfig.Password` 屬性。

**port**  
此代理的連接埠號碼。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.ProxyConfig.Port` 屬性對應到 `Amazon.Util.ProxyConfig.Port` 屬性。

**使用者名稱**  
使用代理伺服器進行身分驗證的使用者名稱。此屬性從 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.ProxyConfig.Username` 屬性對應到 `Amazon.Util.ProxyConfig.Username` 屬性。

`<proxy>` 元素的父系為 `<aws>` 元素。

`<proxy>` 元素不含子元素。

以下為範例使用的 `<proxy>` 元素：

```
<proxy
  host="192.0.2.0"
  port="1234"
  username="My-Username-Here"
  password="My-Password-Here" />
```

#### s3
<a name="net-dg-config-ref-elements-s3"></a>

`<s3>` 元素代表 Amazon S3 設定的集合。這個元素可以包含 *useSignatureVersion4* 屬性，指定第四版的簽章簽署將用於所有請求 (true) 或第四版的簽章簽署將不會用於所有請求 (false，預設)。此屬性對應到 適用於 .NET 的 AWS SDK中的 `Amazon.AWSConfigs.S3Config.UseSignatureVersion4` 屬性。

`<s3>` 元素的父系為 `<aws>` 元素。

`<s3>` 元素不含子元素。

以下為範例使用的 `<s3>` 元素：

```
<s3 useSignatureVersion4="true" />
```