适用于 .NET 的 AWS SDK 版本 4(V4)已经发布!
要开始使用新版本的 SDK,请参阅 适用于 .NET 的 AWS SDK(V4)开发人员指南,尤其是关于迁移到版本 4 的主题。
适用于 .NET 的 AWS SDK的配置文件参考
注意
本主题中的信息特定于基于 .NET Framework 的项目。默认情况下,App.config 和 Web.config 文件不存在于基于 .NET Core 的项目中。
您可以使用 .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 的 AWS SDK 元素示例。
注意
虽然您可以继续使用代码文件中的以下 AWSConfigs 类属性来指定 AWS 设置,但以下属性已被弃用,并且在将来版本中不受支持:
-
DynamoDBContextTableNamePrefix -
EC2UseSignatureVersion4 -
LoggingOptions -
LogMetrics -
ResponseLoggingOption -
S3UseSignatureVersion4
通常,我们建议不要使用代码文件中的 AWSConfigs 类属性来指定 AWS 设置,而应使用 <aws> 或 Web.config 文件中的 <configSections> 和 App.config 元素来指定 AWS 设置,如本主题后面所述。有关上述属性的更多信息,请参阅配置适用于 .NET 的 AWS SDK应用程序中的 AWSConfigs 代码示例。
声明 AWS 设置部分
您可以通过 <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> 元素的属性和子元素。
允许的元素
以下是 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>
元素参考
下面是 AWS 设置部分允许的元素列表。对于每个元素,将列出其允许的属性和父-子元素。
别名
<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
<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
<dynamoDB> 元素表示一组 Amazon DynamoDB 设置。此元素可以包含 conversionSchema 属性,该属性表示在 .NET 和 DynamoDB 对象之间进行转换所用的版本。允许的值包括 V1 和 V2。此属性映射到Amazon.DynamoDBv2.DynamoDBEntryConversion中的 适用于 .NET 的 AWS SDK 类。有关更多信息,请参阅 DynamoDB 系列 - 转换架构
<dynamoDB> 元素的父级为 <aws> 元素。
<dynamoDB> 元素可以包含 <dynamoDBContext> 子元素。
以下是使用中的 <dynamoDB> 元素的示例:
<dynamoDB conversionSchema="V2"> <!-- ... --> </dynamoDB>
dynamoDBContext
<dynamoDBContext> 元素表示一组 Amazon DynamoDB 上下文特定的设置。此元素可以包含 tableNamePrefix 属性,它表示 DynamoDB 上下文将使用的默认表名前缀 (如果未手动配置此前缀)。此属性从Amazon.Util.DynamoDBContextConfig.TableNamePrefix中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TableNamePrefix 属性映射到 适用于 .NET 的 AWS SDK 属性。有关更多信息,请参阅 DynamoDB 开发工具包的增强功能
<dynamoDBContext> 元素的父级为 <dynamoDB> 元素。
<dynamoDBContext> 元素可包含以下子元素:
-
<alias>(一个或多个实例) -
<map>(一个或多个实例)
以下是使用中的 <dynamoDBContext> 元素的示例:
<dynamoDBContext tableNamePrefix="Test-"> <!-- ... --> </dynamoDBContext>
ec2
<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
<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" />
映射
<map> 元素表示从 .NET 类型到 DynamoDB 表的类型-表映射集合中的单个项(从TypeMapping中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings 属性映射到 适用于 .NET 的 AWS SDK 类的实例)。有关更多信息,请参阅 DynamoDB 开发工具包的增强功能
此元素可以包含以下属性:
-
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
<property> 元素表示 DynamoDB 属性。(此元素从适用于 .NET 的 AWS SDK中的 AddProperty 方法映射到 Amazon.Util.PropertyConfig 类的实例)有关更多信息,请参阅 DynamoDB 开发工具包的增强功能
此元素可以包含以下属性:
-
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
<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
<s3> 元素表示 Amazon S3 设置的集合。此元素可以包含 useSignatureVersion4 属性,该属性指定签名版本 4 签名用于所有请求 (true) 还是不用于所有请求 (false,默认值)。此属性映射到Amazon.AWSConfigs.S3Config.UseSignatureVersion4中的 适用于 .NET 的 AWS SDK 属性。
<s3> 元素的父级为 <aws> 元素。
<s3> 元素不包含子元素。
以下是使用中的 <s3> 元素的示例:
<s3 useSignatureVersion4="true" />