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.awssdk
groupId, 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
-
SDKpenerbitan metrik (dokumentasi 1.x, dokumentasi 2.x)