の AWS SDK for Java 2.x 外部サービスクライアントの設定 - AWS SDK for Java 2.x

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

の AWS SDK for Java 2.x 外部サービスクライアントの設定

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

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

これらのメソッドによるアプリケーションの設定と、各クロス SDK 設定の詳細については、 AWS SDKs およびツールリファレンスガイドを参照してください。SDK が環境変数、JVM システムプロパティ、または設定ファイルから解決できるすべての設定を確認するには、 SDK およびツールリファレンスガイドの「設定リファレンス」を参照してください。 AWS SDKs

クライアント設定の設定プロバイダーチェーン

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

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

  2. JVM システムプロパティ

  3. 環境変数

    • 環境変数の設定の詳細については、 SDK およびツールリファレンスガイドの「環境変数」を参照してください。 AWS SDKs

    • シェルの環境変数は、システム全体、ユーザー全体、特定のターミナルセッションのさまざまなレベルで設定できます。

  4. 共有 config および credentials ファイル

  5. SDK ソースコード自体によって提供されるデフォルト値が最後に使用されます。

    • リージョンなどの一部のプロパティにはデフォルトがありません。コード、環境設定、または共有configファイルで明示的に指定する必要があります。SDK が必要な設定を解決できない場合、API リクエストは実行時に失敗する可能性があります。

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

外部設定を使用して設定されたサービスクライアントを作成する

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

create() メソッドを使用する

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

S3Client s3Client = S3Client.create();

前のコードスニペットはS3Clientインスタンスを作成します。作成時に、SDK は設定プロバイダーチェーンで設定を調べます。SDK が設定値を検出すると、チェーンの後半にある設定が存在する場合でも、その値が使用されます。

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

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

この空のビルダーパターンを使用してクライアントを作成できますが、通常、コードで設定を追加するときにこのパターンを使用します。

SDK for Java 2.x 環境変数と JVM システムプロパティ

AWS SDKs、ほとんどの SDK でサポートされているクロス SDK 設定以外にも、次の設定が用意されています。

注記

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

コンテナ認証情報プロバイダーの環境変数

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

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

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

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

HTTP クライアント実装環境変数

SYNC_HTTP_SERVICE_IMPL– SDK が使用するデフォルトの同期 HTTP 実装を明示的に識別します。これは、クラスパスに複数の実装がある場合や、実装検出にはクラスパススキャンが必要なため、パフォーマンスの最適化として役立ちます。

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

ASYNC_HTTP_SERVICE_IMPL– SDK が使用するデフォルトの非同期 HTTP 実装を明示的に識別します。これは、クラスパスに複数の実装がある場合や、実装検出にはクラスパススキャンが必要なため、パフォーマンスの最適化として役立ちます。

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