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