

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

# の AWS SDK for Java 2.x 外部サービスクライアントの設定
<a name="configuring-service-clients-ext"></a>

多くの設定はコードの外部で管理できます。設定を外部で処理する場合、同じ Java プロセス内のすべてのアプリケーションに適用できます。ほとんどの設定は、環境変数、JVM システムプロパティ、または個別の共有 AWS `config`ファイルのいずれかとして設定できます。共有 `config` ファイルでは「プロファイル」と呼ばれる異なる設定セットを保持して、環境やテストごとに異なる設定を提供できます。

ほとんどの環境変数と共有 `config` ファイルの設定は標準化されており、 AWS SDK やツール全体で共有されて、異なる言語やアプリ間でも一貫した機能をサポートします。多くの場合、SDK for Java が使用できる JVM システムプロパティは環境変数をミラーリングします。

SDK 設定の詳細については、「*[AWS SDK とツールのリファレンスガイド](https://docs.aws.amazon.com/sdkref/latest/guide/overview.html)*」を参照してください。SDK が環境変数、JVM システムプロパティ、設定ファイルから解決できるすべての設定を確認するには、「*AWS SDK とツールのリファレンスガイド*」の「[設定リファレンス](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)」を参照してください。

## クライアント設定の設定プロバイダーチェーン
<a name="configuration-provider-chain"></a>

SDK は、複数の場所 (またはソース) を確認して設定値を見つけます。

1. コードまたはサービスクライアント自体に設定されている明示的な設定は、他の設定よりも優先されます。

1. JVM システムプロパティ
   + JVM システムプロパティの設定の詳細については、「*AWS SDK およびツールリファレンスガイド*」の「[JVM システムプロパティの設定方法](https://docs.aws.amazon.com/sdkref/latest/guide/jvm-system-properties.html#jvm-sys-props-set)」を参照してください。

1. 環境変数
   + 環境変数の設定の詳細については、「*AWS SDK とツールのリファレンスガイド*」の「[環境変数](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html)」を参照してください。
   + シェルの環境変数は、システム全体、ユーザー全体、特定のターミナルセッションなど、さまざまなスコープレベルで設定できることに注意してください。

1. 共有 `config` および `credentials` ファイル
   + これらのファイルの設定については、「*AWS SDK とツールのリファレンスガイド*」の「[共有 `config` ファイルと `credentials` ファイル](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)」を参照してください。

1. SDK ソースコード自体によって提供されるデフォルト値は、最後に使用されます。
   + Region などの一部のプロパティにはデフォルトがありません。これらのプロパティは、コード、環境設定、または共有 `config` ファイルのいずれかで明示的に指定する必要があります。SDK が必要な設定を解決できない場合、API リクエストは実行時に失敗する可能性があります。

この一般的な設定チェーンに加えて、SDK for Java 2.x は[認証情報プロバイダーチェーン](credentials-chain.md)や [AWS リージョン プロバイダーチェーン](region-selection.md#default-region-provider-chain)などの特殊なプロバイダーチェーンも使用します。これらの特殊なチェーンは、SDK が実行されている環境を考慮したプロバイダーを追加します。たとえば、コンテナまたは EC2 インスタンスなどです。

## 外部設定を使用して設定されたサービスクライアントの作成
<a name="create-client-ext-conf"></a>

 AWS のサービスと通信するには、アプリケーションにサービスクライアントを作成する必要があります。サービスクライアントは への重要な接続であり AWS のサービス、複雑な通信の詳細をすべて処理するため、心配する必要はありません。セキュリティ、エラー処理、再試行などの重要なタスクを自動的に処理するため、ユーザーは技術的な複雑さに対処するのではなく、アプリケーションの構築に集中できます。

### `create()` メソッドの使用
<a name="create-client-ext-builder"></a>

必要なすべての設定が外部ソースからのものである場合は、シンプルな方法でサービスクライアントを作成できます。

```
S3Client s3Client = S3Client.create();
```

前のコードスニペットにより `S3Client` インスタンスが作成されます。作成時に、SDK は設定を取得するために設定プロバイダチェーンを順に参照します。SDK が設定値を見つけると、チェーンの後方に別の構成が存在していても、その値が使用されます。

たとえば、ユーザーがシステムプロパティ を設定 AWS リージョン して の JVM 設定を設定したとします`-Daws.region=us-west-2`。`AWS_REGION` 環境変数も設定されている場合、その値は無視されます。

デフォルトのリージョンプロバイダーチェーンとデフォルトの認証情報プロバイダーチェーンも、作成プロセスで使用されます。チェーン上のどこかで、SDK は使用する AWS リージョン を解決し、リクエスト署名のための認証情報を取得できるようにする設定を見つける必要があります。SDK がこれらの値を見つけられない場合、クライアントの作成は失敗します。

この空のビルダーパターンを使用してクライアントを作成できますが、通常、このパターンは[コードで設定を追加する](configuring-service-clients-code.md#conf-service-client-code-basic)ときに使用します。

## SDK for Java 2.x 環境変数と JVM システムプロパティ
<a name="java-ext-config"></a>

 AWS SDKs、ほとんどの SDK でサポートされている[クロス SDK](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#settingsPages) 設定以外にも、次の設定が用意されています。

**注記**  
これらの環境変数と JVM システムプロパティは、主に高度なユースケース、テスト、または特定のデプロイシナリオを対象としています。ほとんどのアプリケーションコードでは、より高い型の安全性と IDE サポートを得るために、SDK のクライアントビルダーが提供するプログラムによる設定オプションを使用することが推奨されます。

### コンテナ認証情報プロバイダーの環境変数
<a name="java-cred-profvider-envars"></a>

リファレンスガイドに記載されている標準のコンテナ認証情報環境変数に加えて、SDK は以下もサポートしています。

`AWS_CONTAINER_SERVICE_ENDPOINT` – この環境変数は、コンテナ認証情報プロバイダーを使用するときにコンテナメタデータサービスのエンドポイントを指定します。

Java のシステムプロパティ: `aws.containerServiceEndpoint`

デフォルト値: `http://169.254.170.2`

### HTTP クライアント実装環境変数
<a name="java-http-cli-impl-envars"></a>

`SYNC_HTTP_SERVICE_IMPL` – SDK が使用するデフォルトの[同期 HTTP 実装](http-configuration.md#http-config-sync)を明示的に識別します。これは、クラスパス上に複数の実装が存在する場合に便利です。または、実装の検出にはクラスパスのスキャンが必要となるため、パフォーマンス最適化として有効です。

Java のシステムプロパティ: `software.amazon.awssdk.http.service.impl`

`ASYNC_HTTP_SERVICE_IMPL` – SDK が使用するデフォルトの[非同期 HTTP 実装](http-configuration.md#http-config-async)を明示的に識別します。これは、クラスパス上に複数の実装が存在する場合に便利です。または、実装の検出にはクラスパスのスキャンが必要となるため、パフォーマンス最適化として有効です。

Java のシステムプロパティ: `software.amazon.awssdk.http.async.service.impl`