AWS SDK for Java 1.x と 2.x の相違点 - AWS SDK for Java 2.x

AWS SDK for Java 1.x と 2.x の相違点

このセクションでは、AWS SDK for Java バージョン 1.x の使用からバージョン 2.x の使用にアプリケーションを変換するために注意すべき主要な変更点を説明しています。

パッケージ名の変更

SDK for Java 1.x から SDK for Java 2.x への主な変更点は、パッケージ名の変更です。SDK 2.x ではパッケージ名が software.amazon.awssdk で始まりますが、SDK 1.x では com.amazonaws で始まります。

これらの同じ名前は、SDK 1.x から SDK 2.x までの Maven アーティファクトを区別します。SDK 2.x の Maven アーティファクトは software.amazon.awssdk groupId を使用しますが、SDK 1.x では com.amazonaws groupId を使用します。

SDK 2.x のアーティファクトのみを使用するプロジェクトの com.amazonaws 依存関係がコードに必要になる場合があります。その一例が、サーバーサイド AWS Lambda で使用する場合です。これは、このガイドの前半の「Apache Maven プロジェクトのセットアップ」セクションで説明しました。

注記

SDK 1.x のいくつかのパッケージ名には、v2 を含みます。この場合の v2 の使用は、通常、パッケージ内のコードがバージョン 2 のサービスで動作するように設定されていることを意味します。

フルパッケージ名は com.amazonaws で始まるため、これらは SDK 1.x コンポーネントです。SDK 1.x のパッケージ名の例は次のとおりです。

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

プロジェクトへのバージョン 2.x の追加

AWS SDK for Java 2.x を使用する場合には、Maven が依存関係を管理するために推奨される方法です。バージョン 2x のコンポーネントをプロジェクトに追加するには、SDK の依存関係で pom.xml ファイルを更新します。

<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.21</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>dynamodb</artifactId> </dependency> </dependencies>

プロジェクトをバージョン 2.x に移行するときに、バージョン 1.x と 2.x を併用することもできます。

イミュータブルな POJO

クライアントとオペレーションリクエスト、および応答オブジェクトがイミュータブルになり、作成後に変更できなくなりました。リクエストあるいはレスポンス変数を再利用するには、新しいオブジェクトを構築してそれを割り当てる必要があります。

例 1.x でリクエストオブジェクトを更新する場合
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
例 2.x でリクエストオブジェクトを更新する場合
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

セッターメソッドとゲッターメソッド

AWS SDK for Java 2.x では、設定メソッド名に set または with プレフィックスを含めることはできません。たとえば、*.withEndpoint() は現在 *.endpoint() です。

ゲッターメソッド名は get プレフィックスを使用しません。

例 1.x でセッターメソッドを使用する場合
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
例 2.x でセッターメソッドを使用する場合
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
例 1.x でゲッターメソッドを使用する場合
String token = request.getNextToken();
例 2.x でゲッターメソッドを使用する場合
String token = request.nextToken();

モデルクラス名

サービスレスポンスを表すモデルクラス名は、v2 では v1 で使用される Response ではなく、Result で終わります。

例 v1 でのレスポンスを表すクラス名
CreateApiKeyResult AllocateAddressResult
例 v2 でのレスポンスを表すクラス名
CreateApiKeyResponse AllocateAddressResponse

ライブラリとユーティリティの移行状況

SDK for Java ライブラリとユーティリティ

次の表は、SDK for Java のライブラリとユーティリティの移行ステータスを示しています。

バージョン 1.12.x の名前 バージョン 2.x の名前 バージョン 2.x 以降
DynamoDBMapper DynamoDbEnhancedClient 2.12.0
ウェイター ウェイター 2.15.0
CloudFrontUrlSigner、CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S3TransferManager 2.19.0
EC2 メタデータクライアント EC2 メタデータクライアント 2.19.29
S3 URI パーサー S3 URI パーサー 2.20.41
IAM Policy Builder IAM Policy Builder 2.20.126
S3 イベント通知 S3 イベント通知 2.25.11
Amazon SQS のクライアント側のバッファリング Amazon SQS の自動リクエストバッチ処理 API 2.28.0
進行状況のリスナー 進行状況のリスナー 未リリース

関連ライブラリ

次の表は、個別にリリースされているものの、SDK for Java 2.x で動作するライブラリの一覧です。

SDK for Java のバージョン 2.x で使用されている名前 バージョン以降
Amazon S3 暗号化クライアント 3.0.01
AWS Database Encryption SDK for DynamoDB 3.0.02

1Amazon S3 暗号化クライアント

Amazon S3 の暗号化クライアントは、次の Maven 依存関係を使用して利用できます。

<dependency> <groupId>software.amazon.encryption.s3</groupId> <artifactId>amazon-s3-encryption-client-java</artifactId> <version>3.x</version> </dependency>

2AWS Database Encryption SDK for DynamoDB

AWS Database Encryption SDK for DynamoDB は、次の Maven 依存関係を使用して V2 で使用できます。

<dependency> <groupId>software.amazon.cryptography</groupId> <artifactId>aws-database-encryption-sdk-dynamodb</artifactId> <version>3.x</version> </dependency>

Java SDK の v1 で動作する DynamoDB の暗号化ライブラリに関する情報は、「AWS Database Encryption SDK デベロッパーガイド」 (「Amazon DynamoDB Encryption Client for Java」) および GitHub を参照してください

Java SDK の V2 と互換性のある DynamoDB 暗号化ライブラリの詳細については、「AWS Database Encryption SDK デベロッパーガイド」と GitHub ソースを参照してください。

暗号化ライブラリに関する移行情報は、「AWS Database Encryption SDK デベロッパーガイド」を参照してください。

ライブラリとユーティリティの移行の詳細