AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに移行し、2025 年 12 月 31 end-of-support
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サービスクライアントの作成
にリクエストを行うには Amazon Web Services、まずサービスクライアントオブジェクトを作成します。推奨される方法は、サービスクライアントビルダーを使用することです。
各 AWS のサービス には、サービス の各アクションの メソッドを含むサービスインターフェイスがありますAPI。例えば、DynamoDB のサービスインターフェイスの名前は ですAmazonDynamoDBClient。各サービスインターフェイスに対応するクライアントビルダーがあり、サービスインターフェイスの実装を構築する際に使用できます。のクライアントビルダークラス DynamoDB は ですAmazonDynamoDBClientBuilder。
クライアントビルダーの取得
クライアントビルダーのインスタンスを取得するには、次の例に示す静的ファクトリメソッド standard
を使用します。
AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();
ビルダーを作成したら、ビルダー で多数の流暢なセッターを使用してクライアントのプロパティをカスタマイズできますAPI。たとえば、カスタムリージョンおよびカスタム認証情報プロバイダーは以下のように設定できます。
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