View a markdown version of this page

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

Amazon SDK for .NET V3 已结束支持。

我们建议您迁移到 Amazon SDK for .NET V4。有关如何迁移的更多详细信息和信息,请参阅我们的终止支持公告

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

配置其他应用程序参数

注意

本主题中的信息特定于基于 .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 .NET API 合并LoggingOptions枚举值并设置 AWSConfigs.Logging 属性:

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

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

AWSLog指标

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

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

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

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

或者,要使用 Amazon SDK for .NET API 设置指标日志记录,请设置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 .NET API 设置区域,请设置AWSConfigs。 AWSRegion财产:

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

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

AWSResponse记录日志

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

Never

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

Always

始终记录服务响应。

OnError

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

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

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

或者,在以下<appSettings>部分中AWSResponse设置 Logging 密钥:

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

或者,要使用 Amazon 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-"/>

或者,要使用 Amazon SDK for .NET API 设置表名前缀,请设置 AWSConfigs.Dynamo 属性 DBContext TableNamePrefix

AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";

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

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"/>

或者,要使用 Amazon SDK for .NET API 设置签名版本 4 签名,请将 AWSConfigs.S3 UseSignatureVersion 4 属性设置为:true

AWSConfigs.S3UseSignatureVersion4 = true;

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

AWSEndpoint定义

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

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

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

或者,你可以在以下<appSettings>部分中设置AWSEndpoint定义密钥:

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

或者,要使用 Amazon SDK for .NET API 设置端点定义文件,请设置AWSConfigs。 EndpointDefinition财产:

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

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

Amazon 服务生成的终端节点

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

Amazon CloudSearch 终端节点示例

亚马逊 CloudSearch 客户端用于访问亚马逊 CloudSearch 配置服务。您可以使用 Amazon CloudSearch 配置服务创建、配置和管理搜索域。要创建搜索域,请创建一个CreateDomainRequest对象并提供该DomainName属性。使用请求AmazonCloudSearchClient对象创建对象。调用 CreateDomain 方法。调用返回的CreateDomainResponse对象包含一个同时具有DocServiceSearchService端点的DomainStatus属性。创建一个AmazonCloudSearchDomainConfig对象并使用它来初始化该AmazonCloudSearchDomainClient类的SearchService实例DocService和实例。

// 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"); }