他のアプリケーションパラメータの設定 - AWS SDK for .NET

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

他のアプリケーションパラメータの設定

注記

このトピックの情報は、.NET Framework に基づくプロジェクトに固有のものです。.NET Core に基づくプロジェクトでは、デフォルトでは App.config および Web.config ファイルは存在しません。

設定可能なアプリケーションパラメータは多数あります。

これらのパラメータは、アプリケーションの App.config ファイルまたは Web.config ファイルで設定できます。これらは AWS SDK for .NET API でも設定できますが、アプリケーションの .config ファイルを使用することをお勧めします。ここでは、両方のアプローチについて説明します。

このトピックで後ほど説明する <aws> エレメントの使用方法の詳細については、「AWS SDK for .NET の設定ファイルリファレンス」を参照してください。

AWSLogging

SDK でイベントを記録する方法を設定します。例えば、推奨される方法としては <aws> 要素の子要素である <logging> 要素の使用があります。

<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

SDK でパフォーマンスメトリクスを記録するかどうかを指定します。.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

SDK がサービス応答を記録するタイミングを設定します。指定できる値は以下のとおりです。

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

手動で設定しなかった場合に DynamoDBContext で使用されるデフォルトの TableNamePrefix を設定します。

.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 を使用するかどうかを設定します。

Amazon S3 の署名バージョン 4 での署名を .config ファイルで設定する際に推奨される方法は、<s3> 要素の useSignatureVersion4 属性を設定することです。これは、<aws> 要素の子要素です。

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

または、AWS.S3.UseSignatureVersion4 セクションで true キーを <appSettings> に設定します。

<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

SDK がリージョンとエンドポイントを定義するカスタム設定ファイルを使用するかどうかを設定します。

.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 クライアントインスタンスに対してのみ有効です。endpoint.json ファイルは、https://github.com/aws/aws-sdk-net/blob/master/sdk/src/Core/endpoints.json から入手できます。

AWS のサービスによって生成されたエンドポイント

一部の AWS サービスはリージョンのエンドポイントを使用する代わりに、独自のエンドポイントを生成します。これらのサービスのクライアントは、そのサービスおよびリソースに固有のサービス URL を使用します。これらのサービスの例を 2 つ挙げると、Amazon CloudSearch と AWS IoT があります。次の例は、これらのサービスのエンドポイントを取得する方法を示しています。

Amazon CloudSearch エンドポイントの例

Amazon CloudSearch クライアントは、Amazon CloudSearch 設定サービスにアクセスするために使用されます。Amazon CloudSearch 設定サービスを使用して、検索ドメインを作成、設定、管理します。検索ドメインを作成するには、CreateDomainRequest オブジェクトを作成し、DomainName プロパティを指定します。リクエストオブジェクトを使用して AmazonCloudSearchClient オブジェクトを作成します。CreateDomain メソッドを呼び出します。呼び出しから返される CreateDomainResponse オブジェクトには、DocService および SearchService エンドポイントの両方を持つ DomainStatus プロパティが含まれます。AmazonCloudSearchDomainConfig オブジェクトを作成し、それを使用して AmazonCloudSearchDomainClient クラスの DocService および 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"); }