サービスクライアントの作成 - AWS SDK for Java 1.x

( AWS SDK for Java v1) end-of-support の今後の を発表しましたAWS SDK for Java v2 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

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

サービスクライアントの作成

にリクエストを行うには Amazon Web Services、まずサービスクライアントオブジェクトを作成します。推奨される方法は、サービスクライアントビルダーを使用することです。

各 AWS のサービス には、サービス API の各アクションのメソッドを含むサービスインターフェイスがあります。例えば、DynamoDB のサービスインターフェイスの名前は AmazonDynamoDBClient です。各サービスインターフェイスに対応するクライアントビルダーがあり、サービスインターフェイスの実装を構築する際に使用できます。のクライアントビルダークラス DynamoDB には、AmazonDynamoDB ClientBuilderという名前が付けられています。

クライアントビルダーの取得

クライアントビルダーのインスタンスを取得するには、次の例に示す静的ファクトリメソッド standard を使用します。

AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();

ビルダーを取得すると、ビルダー API で多数の fluent setter を使用して、クライアントのプロパティをカスタマイズできます。たとえば、カスタムリージョンおよびカスタム認証情報プロバイダーは以下のように設定できます。

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
注記

fluent withXXX メソッドは builder オブジェクトを返し、メソッドの呼び出しを連鎖させて利便性とコードの可読性を向上させることができます。必要なプロパティを設定後、build メソッドを呼び出してクライアントを作成することができます。作成後のクライアントはイミュータブルで、setRegion または setEndpoint の呼び出しはすべて失敗します。

ビルダーでは、同じ構成で複数のクライアントを作成できます。アプリケーションを記述している場合、ビルダーがミュータブルであり、スレッドセーフでないことに注意してください。

次のコードでは、クライアントインスタンスのファクトリとしてビルダーが使用されます。

public class DynamoDBClientFactory { private final AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")); public AmazonDynamoDB createClient() { return builder.build(); } }

ビルダーは、 ClientConfigurationと の流暢なセッターRequestMetricCollector、および RequestHandler2 のカスタムリストも公開します。

すべての設定可能なプロパティをオーバーライドする完全な例を次に示します。

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .withClientConfiguration(new ClientConfiguration().withRequestTimeout(5000)) .withMetricsCollector(new MyCustomMetricsCollector()) .withRequestHandlers(new MyCustomRequestHandler(), new MyOtherCustomRequestHandler) .build();

非同期クライアントの作成

AWS SDK for Java には、すべてのサービス ( を除く) に非同期 (または非同期 Amazon S3) クライアントがあり、すべてのサービスに対応する非同期クライアントビルダーがあります。

デフォルトの を使用して非同期 DynamoDB クライアントを作成するには ExecutorService

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();

同期 (または同期) クライアントビルダーがサポートする設定オプションに加えて、非同期クライアントでは、非同期クライアントExecutorServiceが使用する ExecutorFactoryを変更するカスタムを設定できます。 ExecutorFactoryは機能インターフェイスであるため、Java 8 Lambda 式およびメソッドリファレンスと相互運用します。

非同期クライアントをカスタムエグゼキューターで作成するには

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(() -> Executors.newFixedThreadPool(10)) .build();

の使用 DefaultClient

同期クライアントビルダーと非同期クライアントビルダーの両方に、defaultClient という名前の別のファクトリメソッドがあります。このメソッドは、デフォルトプロバイダチェーンを使用して認証情報と AWS リージョンをロードすることで、デフォルト構成を持つサービスクライアントを作成します。アプリケーションを実行している環境から認証情報またはリージョンが決定できない場合、defaultClient の呼び出しは失敗します。AWS 認証情報とリージョンの決定方法の詳細については、「認証情報の使用とAWS リージョン 選択」を参照してください。

デフォルトサービスクライアントを作成するには

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();

クライアントのライフサイクル

SDK のサービスクライアントはスレッドセーフであり、最大のパフォーマンスを得るには、存続期間の長いオブジェクトとしてこれらを処理する必要があります。各クライアントは独自の接続プールリソースを備えています。リソースリークを回避するために、不要になったときは明示的にクライアントをシャットダウンしてください。

明示的にクライアントをシャットダウンする場合は、shutdown メソッドを呼び出します。shutdown の呼び出し後は、すべてのクライアントリソースが解放され、クライアントが使用できなくなります。

クライアントをシャットダウンするには

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); ddb.shutdown(); // Client is now unusable