

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 untuk Java 1.x dan 2.x
<a name="migration-whats-different"></a>

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

## Perubahan nama Package
<a name="mig-diff-package-name-change"></a>

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](setup-project-maven.md#modules-dependencies) 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 dengan`com.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
<a name="adding-v2"></a>

Maven adalah cara yang disarankan untuk mengelola dependensi saat menggunakan 2.x. AWS SDK untuk Java Untuk menambahkan komponen versi 2.x ke project Anda, perbarui `pom.xml` file Anda dengan ketergantungan pada SDK. 

**Example**  

```
<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](migration-side-by-side.md) saat memigrasikan proyek ke versi 2.x.

## Tidak berubah POJOs
<a name="immutable-classes"></a>

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.

**Example memperbarui objek permintaan di 1.x**  

```
DescribeAlarmsRequest request = new DescribeAlarmsRequest();
DescribeAlarmsResult response = cw.describeAlarms(request);

request.setNextToken(response.getNextToken());
```

**Example 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
<a name="setter-getter-methods"></a>

Di AWS SDK untuk Java 2.x, nama metode penyetel tidak menyertakan awalan `set` atau`with`. Misalnya, `*.withEndpoint()` sekarang`*.endpoint()`.

Nama metode getter tidak menggunakan `get` awalan.

**Example menggunakan metode setter di 1.x**  

```
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
        		.withRegion("us-east-1")
        		.build();
```

**Example menggunakan metode setter di 2.x**  

```
DynamoDbClient client = DynamoDbClient.builder()
        		.region(Region.US_EAST_1)
        		.build();
```

**Example menggunakan metode pengambil di 1.x**  

```
String token = request.getNextToken();
```

**Example menggunakan metode pengambil di 2.x**  

```
String token = request.nextToken();
```

## Nama kelas model
<a name="model-classname-changes"></a>

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

**Example nama kelas yang mewakili respons di v1**  

```
CreateApiKeyResult
AllocateAddressResult
```

**Example nama kelas yang mewakili respons di v2**  

```
CreateApiKeyResponse
AllocateAddressResponse
```

## Status migrasi perpustakaan dan utilitas
<a name="migration-libraries-utilities"></a>

### SDK for Java library dan utilitas
<a name="migration-java-sdk-libs-utils"></a>

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


| Versi 1.12.x nama | Nama versi 2.x | Sejak versi di 2.x | 
| --- | --- | --- | 
| Dinamo DBMapper | [DynamoDbEnhancedClient](dynamodb-enhanced-client.md) | 2.12.0 | 
| Pelayan | [Pelayan](waiters.md) | 2.15.0 | 
| CloudFrontUrlSigner, CloudFrontCookieSigner | [CloudFrontUtilities](https://aws.amazon.com/blogs/developer/amazon-cloudfront-signed-urls-and-cookies-are-now-supported-in-aws-sdk-for-java-2-x/) | 2.18.33 | 
| TransferManager | [S3 TransferManager](transfer-manager.md) | 2.19.0 | 
| Klien Metadata EC2 |  [Klien Metadata EC2](examples-ec2-IMDS.md)  | 2.19.29 | 
| Pengurai URI S3 |  [Pengurai URI S3](https://aws.amazon.com/blogs/devops/s3-uri-parsing-is-now-available-in-aws-sdk-for-java-2-x/)  | 2.20.41 | 
| Pembangun Kebijakan IAM | [Pembangun Kebijakan IAM](feature-iam-policy-builder.md) | 2.20.126 | 
| Notifikasi Peristiwa S3 | [Pemberitahuan Acara S3](examples-s3-event-notifications.md#s3-event-notification-read) | 2.25.11  | 
| Buffering sisi klien Amazon SQS | [API Batching Permintaan Otomatis untuk Amazon SQS](sqs-auto-batch.md) | 2.28.0 | 
| Pendengar Kemajuan | Pendengar Kemajuan | [belum dirilis](https://github.com/aws/aws-sdk-java-v2/issues/25) | 

### Perpustakaan terkait
<a name="migration-other-sdks"></a>

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](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/what-is-s3-encryption-client.html)  |  3.0.0 1  | 
| [AWS SDK Enkripsi Database untuk DynamoDB](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) | 3.0.0 2 | 

#### 1 Klien Enkripsi Amazon S3
<a name="migration-s3-encryption-sdk"></a>

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 SDK Enkripsi AWS Database untuk DynamoDB
<a name="migration-ddb-encryption-sdk"></a>

SDK Enkripsi AWS Database untuk DynamoDB tersedia untuk V2 dengan menggunakan dependensi Maven berikut.

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

Informasi tentang pustaka enkripsi untuk DynamoDB yang bekerja dengan v1 dari Java SDK tersedia di [AWS Panduan Pengembang SDK Enkripsi Database (bernama Amazon *DynamoDB*](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/java.html) Encryption Client for Java) dan di. [GitHub](https://github.com/aws/aws-dynamodb-encryption-java)

[Untuk informasi selengkapnya tentang pustaka enkripsi DynamoDB yang kompatibel dengan V2 dari Java SDK, lihat Panduan Pengembang SDK [Enkripsi Database dan AWS sumbernya](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html). GitHub](https://github.com/aws/aws-database-encryption-sdk-dynamodb)

Informasi migrasi tentang pustaka enkripsi tersedia di [Panduan Pengembang SDK Enkripsi AWS Database](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java-migrate.html).

### Detail migrasi untuk perpustakaan dan utilitas
<a name="migrate-libs-utils-details"></a>
+ [Manajer Transfer](migration-s3-transfer-manager.md)
+ [Utilitas metadata EC2](migration-imds.md)
+ [CloudFrontprepenandatanganan](migration-cloudfront-presigning.md)
+ [Penguraian URI S3](migration-s3-uri-parser.md)
+ [DynamoDB mapping/document APIs](migration-ddb-mapper.md) 
+ [Pembangun Kebijakan IAM](migration-iam-policy-builder.md)
+ [Pemberitahuan Acara S3](migration-s3-event-notification.md)
+ Penerbitan metrik SDK (dokumentasi [1.x, dokumentasi](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/generating-sdk-metrics.html) [2.x](metrics.md))