我們宣布
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
JavaScript 從版本 1 升級的 SDK
下列注意事項可協助您將 SDK 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" });
移動響應. 數據。 RequestId 回應. 請求
現在,軟體開發套件會在 response
物件上的同一位置存放所有服務請求 ID,而不是存放在 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 版本 1 搭配使用,用於 JavaScript:
var sts = new AWS.STS.Client(); // or var sts = new AWS.STS(); sts.client.operation(...);
您應將其變更為下列程式碼。
var sts = new AWS.STS(); sts.operation(...)