我们已宣布
从版本 1 升级 SDK for JavaScript
以下说明可帮助您将 SDK for JavaScript 从版本 1 升级到版本 2。
自动转换输入/输出中的 Base64 和时间戳类型
该开发工具包现在可代表用户自动编码和解码 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
现在,该开发工具包将所有服务的请求 ID 存储到 response 对象上一致的位置,而不是 response.data 属性内部。这可以改进以不同方式公开请求 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: [ ... ] } }
各个服务受影响操作的列表如下表中所示。
| 客户端类 | 运营 | 
|---|---|
| 
 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 
| 
 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 
| 
 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 
删除的客户端属性
从服务对象中删除了 .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(...)