本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定其他應用程式參數
注意
本主題中的資訊特定於以 .NET 架構為基礎的專案。根據預設,以 .NET 核心為基礎的專Web.config
案中不存在App.config
和檔案。
您可以設定許多應用程式參數:
這些參數可以在應用程式的 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"/>
或者,在 <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-";
此設定的變更僅對 DynamoDBContextConfig
和 DynamoDBContext
新建立的執行個體生效。
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物件包含同時具有DocService
和SearchService
端點的DomainStatus
屬性。創建一個AmazonCloudSearchDomainConfig對象,並用它來初始化DocService
和AmazonCloudSearchDomainClient類的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"); }