設定其他應用程式參數 - AWS SDK for .NET

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定其他應用程式參數

注意

本主題中的資訊特定於以 .NET 架構為基礎的專案。根據預設,以 .NET 核心為基礎的專Web.config案中不存在App.config和檔案。

您可以設定許多應用程式參數:

這些參數可以在應用程式的 App.configWeb.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 檔案的 log4netSystem.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"/>

或者,在 <appSettings> 設定 AWSRegion 金鑰:

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

或者,在 <appSettings> 設定 AWSResponseLogging 金鑰:

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

或者,若要使用 AWS SDK for .NET API 設定服務記錄,請設定 AWSConfigs. ResponseLogging屬性ResponseLoggingOption列舉的其中一個值:

AWSConfigs.ResponseLogging = ResponseLoggingOption.OnError;

這些設定的變更會立即生效。

AWS.DynamoDBContext.TableNamePrefix

設定預設 TableNamePrefix DynamoDBContext 將會在未手動設定的情況下。

若要設定 .config 檔案的表格的前綴名稱,建議的方法為設定 <dynamoDB> 元素的子元素 <dynamoDBContext> 元素之 tableNamePrefix 屬性值,此元素其本身又為 <aws> 的子元素:

<dynamoDBContext tableNamePrefix="Test-"/>

或者,在 <appSettings> 設定 AWS.DynamoDBContext.TableNamePrefix 金鑰:

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

或者,若要使用 AWS SDK for .NET API 設定資料表名稱前置詞,請設定 AWSConfigs.DynamoDB ContextTableNamePrefix 屬性:

AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";

此設定的變更僅對 DynamoDBContextConfigDynamoDBContext 新建立的執行個體生效。

AWS.S3.UseSignatureVersion4

設定 Amazon S3 用戶端是否應使用簽名版本 4 與請求簽名簽署。

若要在.config檔案中設定 Amazon S3 的簽章版本 4 簽署,建議的方法是設定<s3>元素的useSignatureVersion4屬性,該元素是元素的子<aws>元素:

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

或者,在<appSettings>區段true中將AWS.S3.UseSignatureVersion4金鑰設定為:

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

或者,若要使用 AWS SDK for .NET API 設定簽名版本 4 簽署,請將 AWSConfigs.S3 UseSignatureVersion 4 屬性設定為true

AWSConfigs.S3UseSignatureVersion4 = true;

在預設情況下,此設定為 false,但第四版的簽章可能在某些情況下或某些區域中會做為預設使用。當設定為 true,第四版的簽章將用於所有的請求。對此設定的變更僅在新的 Amazon S3 用戶端執行個體生效。

AWSEndpointDefinition

設定開發套件是否應開始用自訂組態檔案定義區域和端點。

若要設定 .config 檔案的端點定義檔案,我們建議設定 <aws> 元素的 endpointDefinition 屬性值。

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

或者,您可以在以下<appSettings>部分中設置AWSEndpointDefinition密鑰:

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

或者,若要使用 AWS SDK for .NET API 設定端點定義檔案,請設定 AWSConfigs. EndpointDefinition屬性:

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

如果沒有提供檔案名稱,則無法使用自訂組態檔案。此設定的變更只對新的 AWS 用戶端執行個體生效。端點 .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物件包含同時具有DocServiceSearchService端點的DomainStatus屬性。創建一個AmazonCloudSearchDomainConfig對象,並用它來初始化DocServiceAmazonCloudSearchDomainClient類的SearchService實例。

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