

La AWS SDK per JavaScript v2 è arrivata. end-of-support [Ti consigliamo di migrare alla AWS SDK per JavaScript v3.](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/) [Per ulteriori dettagli e informazioni su come effettuare la migrazione, consulta questo annuncio.](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiornamento dell'SDK dalla versione 1 JavaScript
<a name="upgrading-from-v1"></a>

Le seguenti note ti aiutano ad aggiornare l'SDK JavaScript dalla versione 1 alla versione 2.

## Conversione automatica dei tipi base64 e timestamp su input/output
<a name="upgrading-from-v1-base64-timestamp-conversion"></a>

L'SDK ora codifica e decodifica automaticamente i valori con codifica base64, nonché i valori timestamp, per conto dell'utente. Questa modifica interessa qualsiasi operazione in cui valori base64 o timestamp sono stati inviati tramite una richiesta o restituiti in una risposta che consente valori con codifica base64.

Il codice utente precedentemente convertito in base64 non è più necessario. I valori codificati come base64 vengono ora restituiti come buffer di oggetti da risposte del server e possono anche essere passati come buffer in entrata, Ad esempio, i seguenti parametri `SQS.sendMessage` della versione 1:

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

Possono essere riscritti come segue.

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

Ecco come viene letto il messaggio.

```
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"
});
```

## Response.data spostato. RequestId a Response.requestId
<a name="upgrading-from-v1-response-requestid"></a>

L'SDK ora archivia la richiesta IDs per tutti i servizi in una posizione coerente sull'`response`oggetto, anziché all'interno della proprietà. `response.data` Ciò migliora la coerenza tra i servizi che espongono la richiesta IDs in modi diversi. Si tratta inoltre di una modifica di rilievo che rinomina la proprietà `response.data.RequestId` in `response.requestId` (`this.requestId` all'interno di una funzione di callback).

Nel tuo codice, modifica quanto segue:

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

alla seguente:

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

## Elementi wrapper esposti
<a name="upgrading-from-v1-exposed-wrapper-elements"></a>

Se utilizzi `AWS.ElastiCache`, `AWS.RDS` o `AWS.Redshift`, per alcune operazioni devi accedere alla risposta tramite la proprietà di output di livello superiore della risposta. 

Ad esempio, il metodo `RDS.describeEngineDefaultParameters` utilizzato per restituire quanto segue.

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

Ora restituisce il codice seguente.

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

L'elenco delle operazioni interessate per ciascun servizio è riportato nella seguente tabella.


****  

| Classe client | Operazioni | 
| --- | --- | 
| `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` | 

## Proprietà client interrotte
<a name="upgrading-from-v1-dropped-client-properties"></a>

Le proprietà `.Client` e `.client` sono state rimosse dagli oggetti di servizio. Se utilizzi la proprietà `.Client` su una classe di servizio o una proprietà `.client` su un'istanza dell'oggetto di servizio, rimuovi queste proprietà dal tuo codice.

Il codice seguente utilizzato con la versione 1 dell'SDK per: JavaScript

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

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

Dovrebbe essere modificato come segue.

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