Aggiornamento dell'SDK dalla versione 1 JavaScript - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

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

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

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

L'SDK ora archivia gli ID di richiesta per tutti i servizi in una posizione coerente nell'oggetto response, anziché all'interno della proprietà response.data. Ciò migliora la coerenza tra i servizi che espongono gli ID di richiesta 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

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

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(...)