Amazon SDK for .NET的配置文件参考 - Amazon SDK for .NET
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon SDK for .NET的配置文件参考

注意

本主题中的信息特定于基于 .NET Framework 的项目。默认情况下,App.configWeb.config 文件不存在于基于 .NET Core 的项目中。

您可以使用 .NET 项目的 App.configWeb.config 文件指定 Amazon 设置(如 Amazon 凭证、日志记录选项、Amazon 服务端点和 Amazon 区域)以及某些 Amazon 服务设置(例如 Amazon DynamoDB、Amazon EC2 和 Amazon S3)。以下信息介绍了如何正确设置 App.configWeb.config 文件的格式,以指定这些设置类型。

注意

虽然您可以继续在 App.configWeb.config 文件中使用 <appSettings> 元素来指定 Amazon 设置,但我们建议您使用 <configSections><aws> 元素,如本主题后面所述。有关 <appSettings> 元素的更多信息,请参阅配置Amazon SDK for .NET应用程序中的 元素示例。

注意

虽然您可以继续使用代码文件中的以下 AWSConfigs 类属性来指定 Amazon 设置,但以下属性已被弃用,并且在将来版本中不受支持:

  • DynamoDBContextTableNamePrefix

  • EC2UseSignatureVersion4

  • LoggingOptions

  • LogMetrics

  • ResponseLoggingOption

  • S3UseSignatureVersion4

通常,我们建议不要使用代码文件中的 AWSConfigs 类属性来指定 Amazon 设置,而应使用 <aws>Web.config 文件中的 <configSections>App.config 元素来指定 Amazon 设置,如本主题后面所述。有关上述属性的更多信息,请参阅配置Amazon SDK for .NET应用程序中的 AWSConfigs 代码示例。

声明 Amazon 设置部分

您可以通过 <aws> 元素指定 App.configWeb.config 文件中的 Amazon 设置。在开始使用 <aws> 元素之前,您必须先创建一个 <section> 元素 (<configSections> 元素的子元素) 并将其 name 属性和 aws 属性分别设置为 typeAmazon.AWSSection, AWSSDK.Core (如以下示例所示):

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

Visual Studio 编辑器提供针对 <aws> 元素或其子元素的自动代码完成 (IntelliSense)。

调用 <aws> 方法可帮助您创建 Amazon.AWSConfigs.GenerateConfigTemplate 元素格式正确的版本。这将以美观打印字符串形式输出 <aws> 元素的规范版本,可调整该字符串以满足您的需求。以下部分介绍 <aws> 元素的属性和子元素。

允许的元素

以下是 Amazon 设置部分中允许的元素之间的逻辑关系列表。要生成此列表的最新版本,您可以调用 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>

元素参考

下面是 Amazon 设置部分允许的元素列表。对于每个元素,将列出其允许的属性和父-子元素。

别名

<alias> 元素表示集合中的一个项,该集合包含一个或多个源表到目标表的映射,用于指定与为某一类型配置的表不同的表。此元素将从Amazon SDK for .NET中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TableAliases 属性映射到 Amazon.Util.TableAlias 类的实例。在应用表名称前缀之前,将执行重新映射。

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

fromTable

源表到目标表的映射的源表部分。此属性映射到Amazon SDK for .NET中的 Amazon.Util.TableAlias.FromTable 属性。

toTable

源表到目标表的映射的目标表部分。此属性映射到Amazon SDK for .NET中的 Amazon.Util.TableAlias.ToTable 属性。

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

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

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

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

Amazon

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

endpointDefinition

自定义配置文件的绝对路径,该文件定义要使用的 Amazon 区域和端点。此属性映射到Amazon SDK for .NET中的 Amazon.AWSConfigs.EndpointDefinition 属性。

profileName

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

profilesLocation

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

region

没有明确指定区域的客户端的默认 Amazon 区域 ID。此属性映射到Amazon SDK for .NET中的 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

<dynamoDB> 元素表示一组 Amazon DynamoDB 设置。此元素可以包含 conversionSchema 属性,该属性表示在 .NET 和 DynamoDB 对象之间进行转换所用的版本。允许的值包括 V1 和 V2。此属性映射到Amazon SDK for .NET中的 Amazon.DynamoDBv2.DynamoDBEntryConversion 类。有关更多信息,请参阅 DynamoDB 系列 - 转换架构

<dynamoDB> 元素的父级为 <aws> 元素。

<dynamoDB> 元素可以包含 <dynamoDBContext> 子元素。

以下是使用中的 <dynamoDB> 元素的示例:

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

dynamoDBContext

<dynamoDBContext> 元素表示一组 Amazon DynamoDB 上下文特定的设置。此元素可以包含 tableNamePrefix 属性,它表示 DynamoDB 上下文将使用的默认表名前缀 (如果未手动配置此前缀)。此属性从Amazon SDK for .NET中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TableNamePrefix 属性映射到 Amazon.Util.DynamoDBContextConfig.TableNamePrefix 属性。有关更多信息,请参阅 DynamoDB 开发工具包的增强功能

<dynamoDBContext> 元素的父级为 <dynamoDB> 元素。

<dynamoDBContext> 元素可包含以下子元素:

  • <alias> (一个或多个实例)

  • <map> (一个或多个实例)

以下是使用中的 <dynamoDBContext> 元素的示例:

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

ec2

<ec2> 元素表示 Amazon EC2 设置的集合。此元素可以包含 useSignatureVersion4 属性,该属性指定签名版本 4 签名用于所有请求 (true) 还是不用于所有请求 (false,默认值)。此属性从Amazon SDK for .NET中的 Amazon.AWSConfigs.EC2Config.UseSignatureVersion4 属性映射到 Amazon.Util.EC2Config.UseSignatureVersion4 属性。

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

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

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

<ec2 useSignatureVersion4="true" />

日志记录

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

logMetrics

是否将为所有客户端和配置记录性能指标,如果是,则为 true;否则为 false。此属性从Amazon SDK for .NET中的 Amazon.AWSConfigs.LoggingConfig.LogMetrics 属性映射到 Amazon.Util.LoggingConfig.LogMetrics 属性。

logMetricsCustomFormatter

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

logMetricsFormat

用于表示日志记录指标的格式(从Amazon SDK for .NET中的 Amazon.AWSConfigs.LoggingConfig.LogMetricsFormat 属性映射到 Amazon.Util.LoggingConfig.LogMetricsFormat 属性)。

允许的值包括:

JSON

使用 JSON 格式。

Standard

使用默认格式。

logResponses

记录服务响应的时间(从Amazon SDK for .NET中的 Amazon.AWSConfigs.LoggingConfig.LogResponses 属性映射到 Amazon.Util.LoggingConfig.LogResponses 属性)。

允许的值包括:

Always

始终记录服务响应。

Never

从不记录服务响应。

OnError

仅在出错时记录服务响应。

logTo

记录位置(从Amazon SDK for .NET中的 Amazon.AWSConfigs.LoggingConfig.LogTo 属性映射到 LogTo 属性)。

允许的值包括下列一个或多个值:

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 表的类型-表映射集合中的单个项(从Amazon SDK for .NET中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings 属性映射到 TypeMapping 类的实例)。有关更多信息,请参阅 DynamoDB 开发工具包的增强功能

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

targetTable

映射对应的 DynamoDB 表。此属性映射到Amazon SDK for .NET中的 Amazon.Util.TypeMapping.TargetTable 属性。

type

映射对应的类型和程序集名称。此属性映射到Amazon SDK for .NET中的 Amazon.Util.TypeMapping.Type 属性。

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

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

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

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

property

<property> 元素表示 DynamoDB 属性。(此元素从Amazon SDK for .NET中的 AddProperty 方法映射到 Amazon.Util.PropertyConfig 类的实例)有关更多信息,请参阅 DynamoDB 开发工具包的增强功能DynamoDB 属性

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

attribute

属性的属性名,例如范围键的名称。此属性映射到Amazon SDK for .NET中的 Amazon.Util.PropertyConfig.Attribute 属性。

converter

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

ignore

是否应忽略关联的属性,如果忽略,则为 true;否则为 false。此属性映射到Amazon SDK for .NET中的 Amazon.Util.PropertyConfig.Ignore 属性。

name

属性的名称。此属性映射到Amazon SDK for .NET中的 Amazon.Util.PropertyConfig.Name 属性。

version

此属性是否应存储项目版本号,如果是,则为 true;否则为 false。此属性映射到Amazon SDK for .NET中的 Amazon.Util.PropertyConfig.Version 属性。

<property> 元素的父级为 <map> 元素。

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

以下是使用中的 <property> 元素的示例:

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

proxy

<proxy> 元素表示用于配置代理以供Amazon SDK for .NET使用的设置。此元素可以包含以下属性:

host

代理服务器的主机名或 IP 地址。此属性从Amazon SDK for .NET中的 Amazon.AWSConfigs.ProxyConfig.Host 属性映射到 Amazon.Util.ProxyConfig.Host 属性。

密码

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

port

代理的端口号。此属性从Amazon SDK for .NET中的 Amazon.AWSConfigs.ProxyConfig.Port 属性映射到 Amazon.Util.ProxyConfig.Port 属性。

username

用于对代理服务器进行身份验证的用户名。此属性从Amazon SDK for .NET中的 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

<s3> 元素表示 Amazon S3 设置的集合。此元素可以包含 useSignatureVersion4 属性,该属性指定签名版本 4 签名用于所有请求 (true) 还是不用于所有请求 (false,默认值)。此属性映射到Amazon SDK for .NET中的 Amazon.AWSConfigs.S3Config.UseSignatureVersion4 属性。

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

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

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

<s3 useSignatureVersion4="true" />