

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