本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置其他应用程序参数
注意
本主题中的信息特定于基于.NET Framework 的项目。这个App.config
和Web.config
默认情况下,基于.NET Core 的项目中不存在文件。
除了配置凭证之外,您可以配置多个其他应用程序参数:
这些参数可以在应用程序的 App.config
或 Web.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
文件中设置 log4net
和 System.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-";
对此设置的更改仅在新构建的 DynamoDBContextConfig
和 DynamoDBContext
实例中生效。
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
同时具有DocService
和SearchService
端点。创建一个AmazonCloudSearchDomainConfig对象并用它来初始化DocService
和SearchService
的实例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"); }