本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置其他应用程序参数
注意
本主题中的信息特定于基于 .NET Framework 的项目。默认情况下,App.config
和 Web.config
文件不存在于基于 .NET Core 的项目中。
可配置多种应用程序参数:
这些参数可以在应用程序的 App.config
或 Web.config
文件中配置。虽然您也可以使用AWS SDK for .NET API 配置这些参数,但建议您使用应用程序的 .config
文件。此处介绍了这两种方法。
有关本主题后文中所述的使用 <aws>
元素的更多信息,请参阅AWS 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"/>
或者,使用AWS SDK for .NET API,将 LoggingOptions 枚举的值合并,然后设置 AWSConfigs.Logging 属性:
AWSConfigs.Logging = LoggingOptions.Log4Net | LoggingOptions.SystemDiagnostics;
对此设置的更改仅对新 AWS 客户端实例生效。
AWSLogMetrics
指定开发工具包是否应记录性能指标。要在 .config
文件中设置指标日志记录配置,请在 <logging>
元素中设置 logMetrics
属性值,该元素是 <aws>
元素的子元素:
<aws> <logging logMetrics="true"/> </aws>
此外,在 <appSettings>
部分中设置 AWSLogMetrics
关键字:
<add key="AWSLogMetrics" value="true">
此外,要使用AWS SDK for .NET API 设置指标日志记录,请设置 AWSConfigs.LogMetrics 属性:
AWSConfigs.LogMetrics = true;
对于所有客户端/配置,此设置用于配置默认 LogMetrics
属性。对此设置的更改仅对新 AWS 客户端实例生效。
AWSRegion
为没有明确指定区域的客户端配置默认 AWS 区域。要在 .config
文件中设置区域,建议的方法是在 aws
元素中设置 region
属性值:
<aws region="us-west-2"/>
此外,在 部分中设置 AWSRegion<appSettings>
关键字:
<add key="AWSRegion" value="us-west-2"/>
或者,要使用AWS SDK for .NET API 设置区域,请设置 AWSConfigs.AWSRegion 属性:
AWSConfigs.AWSRegion = "us-west-2";
有关为特定区域创建 AWS 客户端的更多信息,请参阅 AWS 区域选择。对此设置的更改仅对新 AWS 客户端实例生效。
AWSResponseLogging
配置开发工具包在什么情况下记录服务响应。可能的值包括:
-
Never
-
从不记录服务响应。这是默认模式。
-
Always
-
始终记录服务响应。
-
OnError
-
仅在出错时记录服务响应。
要在 .config
文件中设置服务日志记录配置,推荐的方法是在 <logging>
元素中设置 logResponses
属性值,该元素是 <aws>
元素的子元素:
<aws> <logging logResponses="OnError"/> </aws>
此外,在 部分中设置 AWSResponseLogging<appSettings>
关键字:
<add key="AWSResponseLogging" value="OnError"/>
或者,要使用AWS SDK for .NET API 设置服务日志记录,请将 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-"/>
或者,要使用AWS SDK for .NET API 设置表名前缀,请设置 AWSConfigs.DynamoDBContextTableNamePrefix 属性:
AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";
对此设置的更改仅在新构建的 DynamoDBContextConfig
和 DynamoDBContext
实例中生效。
AWS.S3.UseSignatureVersion4
配置 Amazon S3 客户端是否应使用签名版本 4 对请求签名。
要在 .config
文件中为 Amazon S3 设置签名版本 4 的签名,推荐的方法是在 <s3>
元素中设置 useSignatureVersion4
属性,该元素是 <aws>
元素的子元素:
<aws> <s3 useSignatureVersion4="true"/> </aws>
此外,在 <appSettings>
部分中将 AWS.S3.UseSignatureVersion4
密钥设置为 true
:
<add key="AWS.S3.UseSignatureVersion4" value="true"/>
或者,要使用AWS SDK for .NET API 设置签名版本 4 签名,请将 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"/>
或者,要使用AWS SDK for .NET API 设置终端节点定义文件,请设置 AWSConfigs.EndpointDefinition 属性:
AWSConfigs.EndpointDefinition = @"c:\config\endpoints.json";
如果没有提供文件名,则不使用自定义配置文件。对此设置的更改仅对新 AWS 客户端实例生效。endpoint.json 文件可从https://github.com/aws/aws-sdk-net/blob/master/sdk/src/Core/endpoints.json
AWS 服务生成的端点
一些 AWS 服务生成自己的端点,而不使用区域端点。这些服务的客户端使用特定于该服务的服务 URL 以及您的资源。这些服务的两个示例是 Amazon CloudSearch 和 AWS IoT。以下示例演示如何获取这些服务的终端节点。
Amazon CloudSearch 端点示例
Amazon CloudSearch 客户端用于访问 Amazon CloudSearch 配置服务。您使用 Amazon CloudSearch 配置服务来创建、配置和管理搜索域。要创建搜索域,请创建 CreateDomainRequest 对象并提供 DomainName
属性。使用请求对象创建 AmazonCloudSearchClient 对象。调用 CreateDomain 方法。调用返回的 CreateDomainResponse 对象包含 DomainStatus
属性,该属性具有 DocService
和 SearchService
终端节点。创建 AmazonCloudSearchDomainConfig 对象并使用它来初始化 DocService
AmazonCloudSearchDomainClientSearchService
类的 和 实例。
// 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); }
AWS IoT 终端节点示例
要获取 AWS 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"); }