

 适用于 .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>` 元素的更多信息，请参阅[配置`<appSettings>`应用程序](net-dg-config.md)中的 适用于 .NET 的 AWS SDK 元素示例。

**注意**  
虽然您可以继续使用代码文件中的以下 [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 设置，而应使用 `<aws>` 或 `Web.config` 文件中的 `<configSections>` 和 `App.config` 元素来指定 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)
+ [logging](#net-dg-config-ref-elements-logging)
+ [映射](#net-dg-config-ref-elements-map)
+ [property](#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>` 元素表示集合中的一个项，该集合包含一个或多个源表到目标表的映射，用于指定与为某一类型配置的表不同的表。此元素将从`Amazon.Util.TableAlias`中的 `Amazon.AWSConfigs.DynamoDBConfig.Context.TableAliases` 属性映射到 适用于 .NET 的 AWS SDK 类的实例。在应用表名称前缀之前，将执行重新映射。

此元素可以包含以下属性：

** `fromTable` **  
源表到目标表的映射的源表部分。此属性映射到`Amazon.Util.TableAlias.FromTable`中的 适用于 .NET 的 AWS SDK 属性。

** `toTable` **  
源表到目标表的映射的目标表部分。此属性映射到`Amazon.Util.TableAlias.ToTable`中的 适用于 .NET 的 AWS SDK 属性。

`<alias>` 元素的父级为 `<tableAliases>` 元素。

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

以下是使用中的 `<alias>` 元素的示例：

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

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

`<aws>` 元素表示 AWS 设置部分中的最顶层元素。此元素可以包含以下属性：

** `endpointDefinition` **  
自定义配置文件的绝对路径，该文件定义要使用的 AWS 区域和端点。此属性映射到`Amazon.AWSConfigs.EndpointDefinition`中的 适用于 .NET 的 AWS SDK 属性。

** `profileName` **  
存储的 AWS 凭证的配置文件名称，该凭证将用于进行服务调用。此属性映射到`Amazon.AWSConfigs.AWSProfileName`中的 适用于 .NET 的 AWS SDK 属性。

** `profilesLocation` **  
与其它 AWS 开发工具包共享的凭证文件位置的绝对路径。默认情况下，凭证文件存储在当前用户主目录的 `.aws` 目录中。此属性映射到`Amazon.AWSConfigs.AWSProfilesLocation`中的 适用于 .NET 的 AWS SDK 属性。

** `region` **  
没有明确指定区域的客户端的默认 AWS 区域 ID。此属性映射到`Amazon.AWSConfigs.AWSRegion`中的 适用于 .NET 的 AWS SDK 属性。

`<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>` 元素表示一组 Amazon DynamoDB 设置。此元素可以包含 *conversionSchema* 属性，该属性表示在 .NET 和 DynamoDB 对象之间进行转换所用的版本。允许的值包括 V1 和 V2。此属性映射到`Amazon.DynamoDBv2.DynamoDBEntryConversion`中的 适用于 .NET 的 AWS SDK 类。有关更多信息，请参阅 [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 上下文将使用的默认表名前缀 (如果未手动配置此前缀)。此属性从`Amazon.Util.DynamoDBContextConfig.TableNamePrefix`中的 `Amazon.AWSConfigs.DynamoDBConfig.Context.TableNamePrefix` 属性映射到 适用于 .NET 的 AWS SDK 属性。有关更多信息，请参阅 [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* 属性，该属性指定签名版本 4 签名用于所有请求 (true) 还是不用于所有请求 (false，默认值)。此属性从`Amazon.Util.EC2Config.UseSignatureVersion4`中的 `Amazon.AWSConfigs.EC2Config.UseSignatureVersion4` 属性映射到 适用于 .NET 的 AWS SDK 属性。

`<ec2>` 元素的父级为该元素。

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

以下是使用中的 `<ec2>` 元素的示例：

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

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

`<logging>` 元素表示一组用于响应日志记录和性能指标日志记录的设置。此元素可以包含以下属性：

** `logMetrics` **  
是否将为所有客户端和配置记录性能指标，如果是，则为 true；否则为 false。此属性从`Amazon.Util.LoggingConfig.LogMetrics`中的 `Amazon.AWSConfigs.LoggingConfig.LogMetrics` 属性映射到 适用于 .NET 的 AWS SDK 属性。

** `logMetricsCustomFormatter` **  
用于日志记录指标的自定义格式化程序的数据类型和程序集名称。此属性从`Amazon.Util.LoggingConfig.LogMetricsCustomFormatter`中的 `Amazon.AWSConfigs.LoggingConfig.LogMetricsCustomFormatter` 属性映射到 适用于 .NET 的 AWS SDK 属性。

** `logMetricsFormat` **  
用于表示日志记录指标的格式（从`Amazon.Util.LoggingConfig.LogMetricsFormat`中的 `Amazon.AWSConfigs.LoggingConfig.LogMetricsFormat` 属性映射到 适用于 .NET 的 AWS SDK 属性）。  
允许的值包括：    
** `JSON` **  
使用 JSON 格式。  
** `Standard` **  
使用默认格式。

** `logResponses` **  
记录服务响应的时间（从`Amazon.Util.LoggingConfig.LogResponses`中的 `Amazon.AWSConfigs.LoggingConfig.LogResponses` 属性映射到 适用于 .NET 的 AWS SDK 属性）。  
允许的值包括：    
** `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 表的类型-表映射集合中的单个项（从`TypeMapping`中的 `Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings` 属性映射到 适用于 .NET 的 AWS SDK 类的实例）。有关更多信息，请参阅 [DynamoDB 开发工具包的增强功能](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK)。

此元素可以包含以下属性：

** `targetTable` **  
映射对应的 DynamoDB 表。此属性映射到`Amazon.Util.TypeMapping.TargetTable`中的 适用于 .NET 的 AWS SDK 属性。

** `type` **  
映射对应的类型和程序集名称。此属性映射到`Amazon.Util.TypeMapping.Type`中的 适用于 .NET 的 AWS SDK 属性。

`<map>` 元素的父级为 `<dynamoDBContext>` 元素。

`<map>` 元素可包含 `<property>` 子元素的一个或多个实例。

以下是使用中的 `<map>` 元素的示例：

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

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

`<property>` 元素表示 DynamoDB 属性。（此元素从适用于 .NET 的 AWS SDK中的 `AddProperty` 方法映射到 Amazon.Util.PropertyConfig 类的实例）有关更多信息，请参阅 [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` **  
属性的属性名，例如范围键的名称。此属性映射到`Amazon.Util.PropertyConfig.Attribute`中的 适用于 .NET 的 AWS SDK 属性。

** `converter` **  
应该用于此属性的转换器的类型。此属性映射到`Amazon.Util.PropertyConfig.Converter`中的 适用于 .NET 的 AWS SDK 属性。

** `ignore` **  
是否应忽略关联的属性，如果忽略，则为 true；否则为 false。此属性映射到`Amazon.Util.PropertyConfig.Ignore`中的 适用于 .NET 的 AWS SDK 属性。

** `name` **  
属性的名称。此属性映射到`Amazon.Util.PropertyConfig.Name`中的 适用于 .NET 的 AWS SDK 属性。

** `version` **  
此属性是否应存储项目版本号，如果是，则为 true；否则为 false。此属性映射到`Amazon.Util.PropertyConfig.Version`中的 适用于 .NET 的 AWS SDK 属性。

`<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使用的设置。此元素可以包含以下属性：

**host**  
代理服务器的主机名或 IP 地址。此属性从`Amazon.Util.ProxyConfig.Host`中的 `Amazon.AWSConfigs.ProxyConfig.Host` 属性映射到 适用于 .NET 的 AWS SDK 属性。

**password**  
用于对代理服务器进行身份验证的密码。此属性从`Amazon.Util.ProxyConfig.Password`中的 `Amazon.AWSConfigs.ProxyConfig.Password` 属性映射到 适用于 .NET 的 AWS SDK 属性。

**端口**  
代理的端口号。此属性从`Amazon.Util.ProxyConfig.Port`中的 `Amazon.AWSConfigs.ProxyConfig.Port` 属性映射到 适用于 .NET 的 AWS SDK 属性。

**username**  
用于对代理服务器进行身份验证的用户名。此属性从`Amazon.Util.ProxyConfig.Username`中的 `Amazon.AWSConfigs.ProxyConfig.Username` 属性映射到 适用于 .NET 的 AWS SDK 属性。

`<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* 属性，该属性指定签名版本 4 签名用于所有请求 (true) 还是不用于所有请求 (false，默认值)。此属性映射到`Amazon.AWSConfigs.S3Config.UseSignatureVersion4`中的 适用于 .NET 的 AWS SDK 属性。

`<s3>` 元素的父级为 `<aws>` 元素。

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

以下是使用中的 `<s3>` 元素的示例：

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