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 に変換するときに注意すべき主な変更点について説明します。

パッケージ名の変更

for Java 1.x から SDK for Java 2.x SDK への顕著な変更は、パッケージ名の変更です。パッケージ名は SDK 2.x software.amazon.awssdkで始まり、1.x SDK は を使用しますcom.amazonaws

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

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

注記

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

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

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

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

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

<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 と side-by-side 2.x を使用することもできます。

イミュータブル POJOs

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

例 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() です。

Getter メソッド名は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();

モデルクラス名

サービスレスポンスを表すモデルクラス名は、v1 が使用するのではなく、v2 Result Responseで終了します。

例 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クライアント側のバッファリング API Amazon の自動リクエストバッチ処理 SQS 2.28.0
進行状況のリスナー 進行状況のリスナー 未リリース

関連ライブラリ

次の表は、個別にリリースされているがSDK、 for Java 2.x で動作するライブラリを示しています。

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

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

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

2DynamoDB 用の AWS データベース暗号化クライアントは、次の Maven 依存関係を使用して使用できます。

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

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