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

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

配置其他应用程序参数

注意

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

除了配置凭证之外,您可以配置多个其他应用程序参数:

这些参数可以在应用程序的 App.configWeb.config 文件中配置。虽然您也可以使用Amazon SDK for .NET API 配置这些参数,但建议您使用应用程序的 .config 文件。此处介绍了这两种方法。

有关使用的更多信息<aws>元素,如本主题后面所述,请参见的配置文件参考Amazon SDK for .NET

AWSLogging

配置开发工具包应如何记录事件 (如果记录)。例如,建议的方法是使用 <logging> 元素,该元素是 <aws> 元素的子元素:

<aws> <logging logTo="Log4Net"/> </aws>

或者:

<add key="AWSLogging" value="log4net"/>

可能的值包括:

None

禁用 事件日志记录。这是默认模式。

log4net

使用 log4net 记录。

SystemDiagnostics

使用 System.Diagnostics 类记录。

您可以为 logTo 属性设置多个值,以逗号分隔。以下示例在 .config 文件中设置 log4netSystem.Diagnostics 日志记录:

<logging logTo="Log4Net, SystemDiagnostics"/>

或者:

<add key="AWSLogging" value="log4net, SystemDiagnostics"/>

或者,使用Amazon SDK for .NETAPI,将的值组合起来LoggingOptions枚举并设置AWSConfigs.登录财产:

AWSConfigs.Logging = LoggingOptions.Log4Net | LoggingOptions.SystemDiagnostics;

对此设置的更改仅对新 Amazon 客户端实例生效。

AWSLogMetrics

指定开发工具包是否应记录性能指标。要在 .config 文件中设置指标日志记录配置,请在 <logging> 元素中设置 logMetrics 属性值,该元素是 <aws> 元素的子元素:

<aws> <logging logMetrics="true"/> </aws>

此外,在 <appSettings> 部分中设置 AWSLogMetrics 关键字:

<add key="AWSLogMetrics" value="true">

或者,要设置指标日志Amazon SDK for .NETAPI,设置AWSConfigs。LogMetrics财产:

AWSConfigs.LogMetrics = true;

对于所有客户端/配置,此设置用于配置默认 LogMetrics 属性。对此设置的更改仅对新 Amazon 客户端实例生效。

AWSRegion

配置默认Amazon未明确指定区域的客户端的区域。要在 .config 文件中设置区域,建议的方法是在 aws 元素中设置 region 属性值:

<aws region="us-west-2"/>

此外,在 <appSettings> 部分中设置 AWSRegion 关键字:

<add key="AWSRegion" value="us-west-2"/>

或者,使用以下方法设置区域Amazon SDK for .NETAPI,设置AWSConfigs。AWSRegion财产:

AWSConfigs.AWSRegion = "us-west-2";

有关创建的更多信息Amazon特定区域的客户端,请参见Amazon地区选择。对此设置的更改仅对新 Amazon 客户端实例生效。

AWSResponseLogging

配置开发工具包在什么情况下记录服务响应。可能的值包括:

Never

从不记录服务响应。这是默认模式。

Always

始终记录服务响应。

OnError

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

要在 .config 文件中设置服务日志记录配置,推荐的方法是在 <logging> 元素中设置 logResponses 属性值,该元素是 <aws> 元素的子元素:

<aws> <logging logResponses="OnError"/> </aws>

此外,在 <appSettings> 部分中设置 AWSResponseLogging 关键字:

<add key="AWSResponseLogging" value="OnError"/>

或者,使用设置服务日志Amazon SDK for .NETAPI,设置AWSConfigs。ResponseLogging属性的值之一ResponseLoggingOption枚举:

AWSConfigs.ResponseLogging = ResponseLoggingOption.OnError;

对此设置的更改会立即生效。

AWS.DynamoDBContext.TableNamePrefix

配置 TableNamePrefix 将使用的默认 DynamoDBContext (在未手动配置的情况下)。

要在 .config 文件中设置表名前缀,建议的方法是在 <dynamoDBContext> 元素中设置 tableNamePrefix 属性值,该元素是 <dynamoDB> 元素 (这又是 <aws> 的子元素) 的子元素:

<dynamoDBContext tableNamePrefix="Test-"/>

此外,在 <appSettings> 部分中设置 AWS.DynamoDBContext.TableNamePrefix 关键字:

<add key="AWS.DynamoDBContext.TableNamePrefix" value="Test-"/>

或者,要将表名前缀设置为Amazon SDK for .NETAPI,设置AWSConfigs.dynamoDBContextTableNamePrefix财产:

AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";

对此设置的更改仅在新构建的 DynamoDBContextConfigDynamoDBContext 实例中生效。

AWS.S3.UseSignatureVersion4

配置 Amazon S3 客户端是否应使用签名版本 4 对请求进行签名。

要在 Amazon S3 中设置签名版本 4 的签名.config文件,推荐的方法是设置useSignatureVersion4的属性<s3>元素,它是的子元素<aws>元素:

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

或者,设置AWS.S3.UseSignatureVersion4关键true<appSettings>部分:

<add key="AWS.S3.UseSignatureVersion4" value="true"/>

或者,要将签名版本 4 设置为Amazon SDK for .NETAPI,设置AWSConfigs.S3UseSignatureVersion4财产至true:

AWSConfigs.S3UseSignatureVersion4 = true;

默认情况下,此设置是 false,但在某些情况下或者在某些区域中,默认会使用签名版本 4。当设置为 true 时,签名版本 4 将用于所有请求。对此设置的更改仅对新的 Amazon S3 客户端实例生效。

AWSEndpointDefinition

配置开发工具包是否应使用自定义配置文件,该文件定义区域和终端节点。

要在 .config 文件中设置终端节点定义文件,建议在 <aws> 元素中设置 endpointDefinition 属性值。

<aws endpointDefinition="c:\config\endpoints.json"/>

或者,你可以设置AWSEndpointDefinition键入<appSettings>部分:

<add key="AWSEndpointDefinition" value="c:\config\endpoints.json"/>

或者,使用以下命令设置端点定义文件Amazon SDK for .NETAPI,设置AWSConfigs。EndpointDefinition财产:

AWSConfigs.EndpointDefinition = @"c:\config\endpoints.json";

如果没有提供文件名,则不使用自定义配置文件。对此设置的更改仅对新 Amazon 客户端实例生效。端点.json 文件可从以下网址获得https://github.com/aws/aws-sdk-net/blob/master/sdk/src/Core/endpoints.json

Amazon服务生成的终端节点

一些Amazon服务生成自己的终端节点,而不是使用区域终端节点。这些服务的客户端使用特定于该服务的服务 URL 以及您的资源。这些服务的两个例子是亚马逊CloudSearch和Amazon IoT。以下示例演示如何获取这些服务的终端节点。

亚马逊CloudSearch端点示例

亚马逊CloudSearch客户端用于访问亚马逊CloudSearch配置服务。你使用亚马逊CloudSearch用于创建、配置和管理搜索域的配置服务。要创建搜索域,请创建CreateDomainRequest反对并提供DomainName财产。创建一个AmazonCloudSearchClient使用请求对象进行对象。调用 CreateDomain 方法。这个CreateDomainResponse调用返回的对象包含DomainStatus同时具有DocServiceSearchService端点。创建一个AmazonCloudSearchDomainConfig对象并用它来初始化DocServiceSearchService的实例AmazonCloudSearchDomainClient班级。

// Create domain and retrieve DocService and SearchService endpoints DomainStatus domainStatus; using (var searchClient = new AmazonCloudSearchClient()) { var request = new CreateDomainRequest { DomainName = "testdomain" }; domainStatus = searchClient.CreateDomain(request).DomainStatus; Console.WriteLine(domainStatus.DomainName + " created"); } // Test the DocService endpoint var docServiceConfig = new AmazonCloudSearchDomainConfig { ServiceURL = "https://" + domainStatus.DocService.Endpoint }; using (var domainDocService = new AmazonCloudSearchDomainClient(docServiceConfig)) { Console.WriteLine("Amazon CloudSearchDomain DocService client instantiated using the DocService endpoint"); Console.WriteLine("DocService endpoint = " + domainStatus.DocService.Endpoint); using (var docStream = new FileStream(@"C:\doc_source\XMLFile4.xml", FileMode.Open)) { var upload = new UploadDocumentsRequest { ContentType = ContentType.ApplicationXml, Documents = docStream }; domainDocService.UploadDocuments(upload); } } // Test the SearchService endpoint var searchServiceConfig = new AmazonCloudSearchDomainConfig { ServiceURL = "https://" + domainStatus.SearchService.Endpoint }; using (var domainSearchService = new AmazonCloudSearchDomainClient(searchServiceConfig)) { Console.WriteLine("Amazon CloudSearchDomain SearchService client instantiated using the SearchService endpoint"); Console.WriteLine("SearchService endpoint = " + domainStatus.SearchService.Endpoint); var searchReq = new SearchRequest { Query = "Gambardella", Sort = "_score desc", QueryParser = QueryParser.Simple }; var searchResp = domainSearchService.Search(searchReq); }

Amazon IoT 终端节点示例

获取的终端节点Amazon IoT,创建一个AmazonIotClient反对并调用DescribeEndPoint方法。返回的DescribeEndPointResponse对象包含EndpointAddress。创建一个AmazonIotDataConfig对象,设置ServiceURL属性,然后使用该对象来实例化AmazonIotDataClient班级。

string iotEndpointAddress; using (var iotClient = new AmazonIoTClient()) { var endPointResponse = iotClient.DescribeEndpoint(); iotEndpointAddress = endPointResponse.EndpointAddress; } var ioTdocServiceConfig = new AmazonIotDataConfig { ServiceURL = "https://" + iotEndpointAddress }; using (var dataClient = new AmazonIotDataClient(ioTdocServiceConfig)) { Console.WriteLine("AWS IoTData client instantiated using the endpoint from the IotClient"); }