SDK for JavaScript 버전 1에서 업그레이드 - AWS SDK for JavaScript

곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다. AWS SDK for JavaScript v3로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

SDK for JavaScript 버전 1에서 업그레이드

다음 메모를 참조해 SDK for JavaScript를 버전 1에서 버전 2로 업그레이드하세요.

입력/출력 시 Base64 및 타임스탬프의 자동 변환

이제 SDK는 사용자를 대신하여 base64 인코딩 값과 타임스탬프 값을 자동으로 인코딩합니다. 이 변경 사항은 base64 또는 타임스탬프 값이 요청에 따라 전송되거나 base64 인코딩 값을 고려하는 응답에서 반환되는 작업에 영향을 미칩니다.

이전에 base64로 변환된 사용자 코드는 더 이상 필요하지 않습니다. base64로 인코딩된 값은 이제 서버 응답에서 버퍼 객체로 반환되며 버퍼 입력으로 전달될 수도 있습니다. 예를 들어, 다음 버전 1 SQS.sendMessage 파라미터는 다음을 수행할 수 있습니다.

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

다음과 같이 다시 작성할 수 있습니다.

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

메시지를 읽는 방법은 다음과 같습니다.

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를 response.requestId로 이동

이제 SDK는 response.data 속성 내부보다는 response 객체의 일관적인 장소에 모든 서버의 요청 ID를 저장합니다. 이렇게 하면 다양한 방식으로 요청 ID를 공개하는 서비스 전체에서 일관성을 향상할 수 있습니다. 또한 이 변경은 response.data.RequestId 속성의 이름을 response.requestId(콜백 함수 내부에서는 this.requestId)로 바꾸는 획기적인 변경입니다.

코드에서 다음을 변경합니다.

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

다음의 것들로 변경됩니다.

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

노출된 래퍼 요소

AWS.ElastiCache, AWS.RDS 또는 AWS.Redshift를 사용하는 경우 일부 작업에 대한 응답으로 최상위 수준 출력 속성을 통해 응답에 액세스해야 합니다.

예를 들어, RDS.describeEngineDefaultParameters 메서드는 다음을 반환하는 데 사용됩니다.

{ Parameters: [ ... ] }

이제 다음을 반환합니다.

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

각 서비스별로 영향을 받는 작업의 목록은 다음 표와 같습니다.

클라이언트 클래스 운영

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

삭제된 클라이언트 속성

.Client.client 속성은 서비스 객체에서 제거되었습니다. 서비스 클래스에서 .Client 속성을 사용하거나 서비스 객체 인스턴스에서 .client 속성을 사용하는 경우 이러한 속성을 코드에서 제거하십시오.

SDK for JavaScript 버전 1에서 사용되는 코드:

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

다음 코드로 변경해야 합니다.

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