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>