Atualização da versão 1 do SDK para JavaScript - AWS SDK for JavaScript

Anunciamos o próximo fim do suporte para o AWS SDK for JavaScript v2. Recomendamos migrar para o AWS SDK for JavaScript v3. Para saber as datas e receber detalhes adicionais e informações sobre como migrar, consulte o anúncio vinculado.

Atualização da versão 1 do SDK para JavaScript

As notas a seguir ajudam você a atualizar o SDK para JavaScript da versão 1 para a versão 2.

Conversão automática dos tipos Base64 e Timestamp Types na entrada/saída

O SDK agora codifica e decodifica automaticamente os valores codificados em base64, bem como valores de timestamp, em nome do usuário. Essa alteração afeta qualquer operação em que os valores de base64 ou timestamp foram enviados por uma solicitação ou retornados em uma resposta que permite valores codificados em base64.

O código do usuário que converteu previamente base64 não é mais necessário. Os valores codificados como base64 agora são apresentados como objetos de buffer de respostas do servidor e também podem ser passados como entrada do buffer. Por exemplo, os seguintes parâmetros SQS.sendMessage da versão 1:

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

Podem ser reescritos da forma a seguir.

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

Veja como a mensagem é lida.

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.RequestId transferido para response.requestId

O SDK agora armazena IDs de solicitação para todos os serviços em um único lugar do objeto response, em vez de dentro da propriedade response.data. Isso melhora a consistência entre serviços que expõem IDs de solicitação de diferentes formas. Isso também é uma alteração inovadora que renomeia a propriedade response.data.RequestId para response.requestId (this.requestId dentro de uma função de retorno de chamada).

No seu código, altere o seguinte:

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

Para o seguinte:

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

Elementos expostos do Wrapper

Se você usar AWS.ElastiCache, AWS.RDS ou AWS.Redshift, deve acessar a resposta por meio da propriedade de saída de nível superior na resposta para algumas operações.

Por exemplo, o método RDS.describeEngineDefaultParameters usado para retornar o seguinte:

{ Parameters: [ ... ] }

Agora retorna o seguinte:

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

A lista de operações afetadas para cada serviço é exibida na tabela a seguir.

Classe do cliente Operações

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

Propriedades do cliente eliminadas

As propriedades .client e .Client foram removidos dos objetos de serviço. Se você usar a propriedade .Client em uma classe de serviço ou uma propriedade .client na instância de um objeto de serviço, remova essas propriedades do seu código.

O código a seguir usado com a versão 1 do SDK para JavaScript:

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

Deve ser alterado para o código a seguir:

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