Actualización del SDK JavaScript a partir de la versión 1 - AWS SDK for JavaScript

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Actualización del SDK JavaScript a partir de la versión 1

Las siguientes notas le ayudan a actualizar el SDK JavaScript de la versión 1 a la versión 2.

Conversión automática de tipos de marca temporal y de Base64 en la entrada y la salida

Ahora el SDK codifica y descodifica automáticamente los valores con codificación base64, así como los valores de marca temporal, en lugar del usuario. Este cambio afecta a todas las operaciones en las que se envían valores con codificación base64 o de marca temporal a través de solicitudes o a las operaciones en que dichos valores se devuelven en una respuesta en la que se pueden usar valores con codificación base64.

Ahora ya no se necesita el código de usuario que anteriormente convertía valores con codificación base64. Ahora los valores con codificación base64 se devuelven como objetos de búfer desde respuestas de servidor y también se pueden transferir como entradas de búfer. Por ejemplo, los siguientes parámetros SQS.sendMessage de la versión 1:

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

Se pueden reescribir como se indica a continuación.

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

Aquí vemos cómo se lee el mensaje.

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

Se movió response.data. RequestId a Response.requestID

Ahora el SDK almacena los ID de solicitudes de todos los servicios en un lugar coherente, en el objeto response, en lugar de almacenarlos dentro de la propiedad response.data. Esto mejora la coherencia entre los servicios que exponen los ID de las solicitudes de diferentes maneras. También es una modificación importante el hecho de cambiar el nombre de la propiedad response.data.RequestId por response.requestId (this.requestId dentro de una función de devolución de llamada).

En el código, cambie lo siguiente:

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

A lo siguiente:

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

Elementos de encapsulador expuestos

Si utiliza AWS.ElastiCache, AWS.RDS o AWS.Redshift, debe obtener acceso a la respuesta a través de la propiedad de salida de nivel superior en la respuesta a algunas operaciones.

Por ejemplo, el método RDS.describeEngineDefaultParameters que se utiliza para devolver lo siguiente:

{ Parameters: [ ... ] }

Ahora devuelve lo siguiente:

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

En la siguiente tabla se muestra la lista de operaciones afectadas por cada servicio:

Clase de cliente Operaciones

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

Propiedades de cliente eliminadas

Las propiedades .Client y .client se han eliminado de los objetos de servicio. Si utiliza la propiedad .Client en una clase de servicio o una propiedad .client en una instancia de objeto de servicio, elimine estas propiedades de su código.

El siguiente código se utiliza con la versión 1 del SDK para JavaScript:

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

Debe cambiarse por el siguiente código:

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