Apa yang berbeda antara AWS SDK for Java 1.x dan 2.x - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Apa yang berbeda antara AWS SDK for Java 1.x dan 2.x

Bagian ini menjelaskan perubahan utama yang harus diperhatikan saat mengonversi aplikasi dari menggunakan AWS SDK for Java versi 1.x ke versi 2.x.

Perubahan nama Package

Perubahan nyata dari SDK for Java 1.x ke SDK for Java 2.x adalah perubahan nama paket. Nama Package dimulai dengan software.amazon.awssdk SDK 2.x, sedangkan SDK 1.x menggunakan. com.amazonaws

Nama yang sama ini membedakan artefak Maven dari SDK 1.x ke SDK 2.x. Artefak Maven untuk SDK 2.x menggunakan software.amazon.awssdk GroupId, sedangkan SDK 1.x menggunakan GroupId. com.amazonaws

Ada beberapa kali ketika kode Anda memerlukan com.amazonaws ketergantungan untuk proyek yang sebaliknya hanya menggunakan artefak SDK 2.x. Salah satu contohnya adalah ketika Anda bekerja dengan sisi server AWS Lambda. Ini ditunjukkan di bagian Siapkan proyek Apache Maven sebelumnya dalam panduan ini.

catatan

Beberapa nama paket di SDK 1.x berisi. v2 Penggunaan v2 dalam kasus ini biasanya berarti bahwa kode dalam paket ditargetkan untuk bekerja dengan versi 2 dari layanan.

Karena nama paket lengkap dimulai dengancom.amazonaws, ini adalah komponen SDK 1.x. Contoh nama paket ini di SDK 1.x adalah:

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

Menambahkan versi 2.x ke proyek Anda

Maven adalah cara yang disarankan untuk mengelola dependensi saat menggunakan 2.x. AWS SDK for Java Untuk menambahkan komponen versi 2.x ke project Anda, perbarui pom.xml file Anda dengan ketergantungan pada 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>

Anda juga dapat menggunakan versi 1.x dan 2.x side-by-side saat memigrasikan proyek ke versi 2.x.

PojOS yang tidak dapat diubah

Klien dan permintaan operasi dan objek respons sekarang tidak dapat diubah dan tidak dapat diubah setelah pembuatan. Untuk menggunakan kembali variabel permintaan atau respons, Anda harus membangun objek baru untuk menetapkan objek tersebut.

contoh memperbarui objek permintaan di 1.x
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
contoh memperbarui objek permintaan di 2.x
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

Metode setter dan getter

Di AWS SDK for Java 2.x, nama metode penyetel tidak menyertakan awalan set atauwith. Misalnya, *.withEndpoint() sekarang*.endpoint().

Nama metode getter tidak menggunakan get awalan.

contoh menggunakan metode setter di 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
contoh menggunakan metode setter di 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
contoh menggunakan metode pengambil di 1.x
String token = request.getNextToken();
contoh menggunakan metode pengambil di 2.x
String token = request.nextToken();

Nama kelas model

Nama kelas model yang mewakili respons layanan diakhiri dengan Response in v2 alih-alih Result yang digunakan v1.

contoh nama kelas yang mewakili respons di v1
CreateApiKeyResult AllocateAddressResult
contoh nama kelas yang mewakili respons di v2
CreateApiKeyResponse AllocateAddressResponse

Status migrasi perpustakaan dan utilitas

SDK for Java library dan utilitas

Tabel berikut mencantumkan status migrasi pustaka dan utilitas untuk SDK for Java.

Nama versi 1.12.x Nama versi 2.x Sejak versi di 2.x
DynamoDBMapper DynamoDbEnhancedClient 2.12.0
Pelayan Pelayan 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S3 TransferManager 2.19.0
Klien Metadata EC2 Klien Metadata EC2 2.19.29
Pengurai URI S3 Pengurai URI S3 2.20.41
Pembangun Kebijakan IAM Pembangun Kebijakan IAM 2.20.126
Buffering Sisi Klien Amazon SQS Batching Permintaan Otomatis belum dirilis
Pendengar Kemajuan Pendengar Kemajuan belum dirilis

Perpustakaan terkait

Tabel berikut mencantumkan pustaka yang dirilis secara terpisah tetapi bekerja dengan SDK for Java 2.x.

Nama yang digunakan dengan versi 2.x dari SDK for Java Sejak versi
Klien Enkripsi Amazon S3 3.0.0 1
AWS Klien Enkripsi Database untuk DynamoDB 3.0.0 2

1 Klien enkripsi untuk Amazon S3 tersedia dengan menggunakan ketergantungan Maven berikut.

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

2 AWS Database Encryption Client untuk DynamoDB tersedia dengan menggunakan dependensi Maven berikut.

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

Detail migrasi untuk perpustakaan dan utilitas