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 untuk Java 1.x ke SDK untuk Java 2.x adalah perubahan nama paket. Nama Package dimulai software.amazon.awssdk dengan SDK 2.x, sedangkan SDK 1.x menggunakan. com.amazonaws

Nama-nama yang sama ini membedakan artefak Maven dari SDK 1.x ke 2.x. SDK Artefak Maven untuk SDK 2.x menggunakan software.amazon.awssdkgroupId, sedangkan 1.x menggunakan file. SDK com.amazonaws groupId

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 berisiv2. 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 proyek Anda, perbarui pom.xml file Anda dengan ketergantungan pada file. 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>

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

Tidak dapat diubah POJOs

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

SDKuntuk perpustakaan dan utilitas Java

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

Versi 1.12.x nama Nama versi 2.x Sejak versi di 2.x
D ynamoDBMapper DynamoDbEnhancedClient 2.12.0
Pelayan Pelayan 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S3 TransferManager 2.19.0
EC2Klien metadata EC2Klien metadata 2.19.29
Pengurai S3 URI Pengurai S3 URI 2.20.41
IAMPembuat Kebijakan IAMPembuat Kebijakan 2.20.126
Notifikasi Peristiwa S3 Pemberitahuan Acara S3 2.25.11
Buffering SQS Sisi Klien Amazon Batching Permintaan Otomatis API untuk Amazon SQS 2.28.0
Pendengar Kemajuan Pendengar Kemajuan belum dirilis

Perpustakaan terkait

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

Nama yang digunakan dengan versi 2.x SDK untuk 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