

 AWS SDK untuk JavaScript V2 telah mencapai end-of-support. Kami menyarankan Anda bermigrasi ke [AWS SDK untuk JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat [pengumuman](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/) ini.

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

# Memutakhirkan SDK untuk JavaScript dari Versi 1
<a name="upgrading-from-v1"></a>

Catatan berikut membantu Anda meningkatkan SDK JavaScript dari versi 1 ke versi 2.

## Konversi Otomatis Jenis Base64 dan Timestamp pada Input/Output
<a name="upgrading-from-v1-base64-timestamp-conversion"></a>

SDK sekarang secara otomatis mengkodekan dan mendekode nilai yang dikodekan base64, serta nilai stempel waktu, atas nama pengguna. Perubahan ini memengaruhi operasi apa pun di mana nilai base64 atau stempel waktu dikirim oleh permintaan atau dikembalikan dalam respons yang memungkinkan nilai yang dikodekan base64.

Kode pengguna yang sebelumnya dikonversi base64 tidak lagi diperlukan. Nilai yang dikodekan sebagai base64 sekarang dikembalikan sebagai objek buffer dari respons server dan juga dapat diteruskan sebagai input buffer. Misalnya, `SQS.sendMessage` parameter versi 1 berikut:

```
var params = {
   MessageBody: 'Some Message',
   MessageAttributes: {
      attrName: {
         DataType: 'Binary',
         BinaryValue: new Buffer('example text').toString('base64')
      }
   }
};
```

Dapat ditulis ulang sebagai berikut.

```
var params = {
   MessageBody: 'Some Message',
   MessageAttributes: {
      attrName: {
         DataType: 'Binary',
         BinaryValue: 'example text'
      }
   }
};
```

Berikut adalah bagaimana pesan dibaca.

```
sqs.receiveMessage(params, function(err, data) {
  // buf is <Buffer 65 78 61 6d 70 6c 65 20 74 65 78 74>
  var buf = data.Messages[0].MessageAttributes.attrName.BinaryValue;
  console.log(buf.toString()); // "example text"
});
```

## Dipindahkan response.data. RequestId untuk response.Requestid
<a name="upgrading-from-v1-response-requestid"></a>

SDK sekarang menyimpan permintaan IDs untuk semua layanan di tempat yang konsisten pada `response` objek, bukan di dalam `response.data` properti. Ini meningkatkan konsistensi di seluruh layanan yang mengekspos permintaan dengan IDs cara yang berbeda. Ini juga merupakan perubahan besar yang mengganti nama `response.data.RequestId` properti menjadi `response.requestId` (`this.requestId`di dalam fungsi panggilan balik).

Dalam kode Anda, ubah yang berikut ini:

```
svc.operation(params, function (err, data) {
  console.log('Request ID:', data.RequestId);
});
```

Ke hal berikut:

```
svc.operation(params, function () {
  console.log('Request ID:', this.requestId);
});
```

## Elemen Pembungkus Terpapar
<a name="upgrading-from-v1-exposed-wrapper-elements"></a>

Jika Anda menggunakan`AWS.ElastiCache`,`AWS.RDS`, atau`AWS.Redshift`, Anda harus mengakses respons melalui properti output tingkat atas dalam respons untuk beberapa operasi. 

Misalnya, `RDS.describeEngineDefaultParameters` metode yang digunakan untuk mengembalikan yang berikut ini.

```
{ Parameters: [ ... ] }
```

Sekarang mengembalikan yang berikut ini.

```
{ EngineDefaults: { Parameters: [ ... ] } }
```

Daftar operasi yang terpengaruh untuk setiap layanan ditunjukkan pada tabel berikut.


****  

| Kelas Klien | Operasi | 
| --- | --- | 
| `AWS.ElastiCache` | `authorizeCacheSecurityGroupIngress` `createCacheCluster` `createCacheParameterGroup` `createCacheSecurityGroup` `createCacheSubnetGroup` `createReplicationGroup` `deleteCacheCluster` `deleteReplicationGroup` `describeEngineDefaultParameters` `modifyCacheCluster` `modifyCacheSubnetGroup` `modifyReplicationGroup` `purchaseReservedCacheNodesOffering` `rebootCacheCluster` `revokeCacheSecurityGroupIngress` | 
| `AWS.RDS` | `addSourceIdentifierToSubscription` `authorizeDBSecurityGroupIngress` `copyDBSnapshot` `createDBInstance` `createDBInstanceReadReplica` `createDBParameterGroup` `createDBSecurityGroup` `createDBSnapshot` `createDBSubnetGroup` `createEventSubscription` `createOptionGroup` `deleteDBInstance` `deleteDBSnapshot` `deleteEventSubscription` `describeEngineDefaultParameters` `modifyDBInstance` `modifyDBSubnetGroup` `modifyEventSubscription` `modifyOptionGroup` `promoteReadReplica` `purchaseReservedDBInstancesOffering` `rebootDBInstance` `removeSourceIdentifierFromSubscription` `restoreDBInstanceFromDBSnapshot` `restoreDBInstanceToPointInTime` `revokeDBSecurityGroupIngress` | 
| `AWS.Redshift` | `authorizeClusterSecurityGroupIngress` `authorizeSnapshotAccess` `copyClusterSnapshot` `createCluster` `createClusterParameterGroup` `createClusterSecurityGroup` `createClusterSnapshot` `createClusterSubnetGroup` `createEventSubscription` `createHsmClientCertificate` `createHsmConfiguration` `deleteCluster` `deleteClusterSnapshot` `describeDefaultClusterParameters` `disableSnapshotCopy` `enableSnapshotCopy` `modifyCluster` `modifyClusterSubnetGroup` `modifyEventSubscription` `modifySnapshotCopyRetentionPeriod` `purchaseReservedNodeOffering` `rebootCluster` `restoreFromClusterSnapshot` `revokeClusterSecurityGroupIngress` `revokeSnapshotAccess` `rotateEncryptionKey` | 

## Properti Klien yang Jatuh
<a name="upgrading-from-v1-dropped-client-properties"></a>

`.client`Properti `.Client` dan telah dihapus dari objek layanan. Jika Anda menggunakan `.Client` properti pada kelas layanan atau `.client` properti pada instance objek layanan, hapus properti ini dari kode Anda.

Kode berikut yang digunakan dengan SDK versi 1 untuk JavaScript:

```
var sts = new AWS.STS.Client();
// or
var sts = new AWS.STS();

sts.client.operation(...);
```

Harus diubah ke kode berikut.

```
var sts = new AWS.STS();
sts.operation(...)
```