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

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

AWS SDK for Java 1.x と 2.x の違い

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

パッケージ名の変更

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

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

そうでなければ 2.x SDK アーティファクトのみを使用するプロジェクトの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.16.1</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 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
Amazon SQS クライアント側のバッファリング 自動リクエストバッチ処理 未リリース
進行状況のリスナー 進行状況のリスナー 未リリース

関連ライブラリ

次の表に、個別にリリースされているが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>

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

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

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