

 AWS SDK for .NET V3 がメンテナンスモードになりました。

[AWS SDK for .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html) に移行することをお勧めします。移行方法の詳細と情報については、[メンテナンスモードのお知らせ](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)を参照してください。

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

# 他のアプリケーションパラメータの設定
<a name="net-dg-config-other"></a>

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

## 開いて .NET Framework のコンテンツを表示する
<a name="w2aab9c31b9b5b1"></a>

設定可能なアプリケーションパラメータは多数あります。
+  `AWSLogging` 
+  `AWSLogMetrics` 
+  `AWSRegion` 
+  `AWSResponseLogging` 
+  `AWS.DynamoDBContext.TableNamePrefix` 
+  `AWS.S3.UseSignatureVersion4` 
+  `AWSEndpointDefinition` 
+  [AWS サービス生成エンドポイント](#config-setting-service-generated-awsendpointdefinition) 

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

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

### AWSLogging
<a name="config-setting-awslogging"></a>

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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TLoggingOptions.html) 列挙の値を組み合わせて、[AWSConfigs.Logging](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) プロパティを設定します。

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

この設定の変更は、新しい AWS クライアントインスタンスに対してのみ有効になります。

### AWSLogMetrics
<a name="config-setting-awslogmetrics"></a>

SDK でパフォーマンスメトリクスを記録するかどうかを指定します。`.config` ファイルでメトリクスのログを設定するには、`<logging>` 要素の `logMetrics` 属性値を設定します。これは、`<aws>` 要素の子要素です。

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

または、`<appSettings>` セクションで `AWSLogMetrics` キーを設定します。

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

または、 AWS SDK for .NET API でメトリクスのログ記録を設定するには、[AWSConfigs.LogMetrics](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) プロパティを設定します。

```
AWSConfigs.LogMetrics = true;
```

この設定では、すべてのクライアント/設定のデフォルトの `LogMetrics` プロパティを設定します。この設定の変更は、新しい AWS クライアントインスタンスに対してのみ有効になります。

### AWSRegion
<a name="config-setting-awsregion"></a>

 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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) プロパティを設定します。

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

特定のリージョンの AWS クライアントの作成の詳細については、[AWS 「リージョンの選択](net-dg-region-selection.md)」を参照してください。この設定の変更は、新しい AWS クライアントインスタンスに対してのみ有効になります。

### AWSResponseLogging
<a name="config-setting-awsresponselogging"></a>

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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) プロパティを [ResponseLoggingOption](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TResponseLoggingOption.html) 列挙のいずれかの値に設定します。

```
AWSConfigs.ResponseLogging = ResponseLoggingOption.OnError;
```

この設定に対する変更はすぐに反映されます。

### `AWS.DynamoDBContext.TableNamePrefix`
<a name="config-setting-aws-dynamodbcontext-tablenameprefix"></a>

手動で設定しなかった場合に `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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) プロパティを設定します。

```
AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";
```

この設定への変更は、`DynamoDBContextConfig` および `DynamoDBContext` の新しく構築されたインスタンスのみに有効です。

### `AWS.S3.UseSignatureVersion4`
<a name="config-setting-aws-s3-usesignatureversion4"></a>

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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) プロパティを に設定します`true`。

```
AWSConfigs.S3UseSignatureVersion4 = true;
```

デフォルトでは、この設定は `false` ですが、一部のケースまたは一部のリージョンではデフォルトで署名バージョン 4 が使用される場合があります。設定が `true` の場合、すべてのリクエストに署名バージョン 4 が使用されます。この設定の変更は新しい Amazon S3 クライアントインスタンスに対してのみ有効です。

### AWSEndpointDefinition
<a name="config-setting-awsendpointdefinition"></a>

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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) プロパティを設定します。

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

ファイル名が指定されていない場合、カスタム設定ファイルは使用されません。この設定の変更は、新しい AWS クライアントインスタンスに対してのみ有効になります。endpoint.json ファイルは、[https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/endpoints.json](https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/endpoints.json) から入手できます。

### AWS サービス生成エンドポイント
<a name="config-setting-service-generated-awsendpointdefinition"></a>

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

#### Amazon CloudSearch エンドポイントの例
<a name="cs-endpoints-example"></a>

Amazon CloudSearch クライアントは、Amazon CloudSearch 設定サービスにアクセスするために使用されます。Amazon CloudSearch 設定サービスを使用して、検索ドメインを作成、設定、管理します。検索ドメインを作成するには、[CreateDomainRequest](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCreateDomainRequest.html) オブジェクトを作成し、`DomainName` プロパティを指定します。リクエストオブジェクトを使用して [AmazonCloudSearchClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCloudSearchClient.html) オブジェクトを作成します。[CreateDomain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/MCloudSearchCreateDomainCreateDomainRequest.html) メソッドを呼び出します。呼び出しから返される [CreateDomainResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCreateDomainResponse.html) オブジェクトには、`DocService` および `SearchService` エンドポイントの両方を持つ `DomainStatus` プロパティが含まれます。[AmazonCloudSearchDomainConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearchDomain/TCloudSearchDomainConfig.html) オブジェクトを作成し、それを使用して [AmazonCloudSearchDomainClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearchDomain/TCloudSearchDomainClient.html) クラスの `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 エンドポイントの例
<a name="iotlong-endpoints-example"></a>

のエンドポイントを取得するには AWS IoT、[AmazonIoTClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/TIoTClient.html) オブジェクトを作成し、[DescribeEndPoint](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/MIoTDescribeEndpointDescribeEndpointRequest.html) メソッドを呼び出します。返される [DescribeEndPointResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/TDescribeEndpointResponse.html) オブジェクトには、`EndpointAddress` が含まれます。[AmazonIotDataConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IotData/TIotDataConfig.html) オブジェクトを作成し、`ServiceURL` プロパティを設定します。次に、このオブジェクトを使用して [AmazonIotDataClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IotData/TIotDataClient.html) クラスをインスタンス化します。

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