La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la AWS SDK pour JavaScript version 3. Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette annonce
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Mise à niveau du SDK à JavaScript partir de la version 1
Les remarques suivantes vous aident à mettre à niveau le SDK JavaScript de la version 1 à la version 2.
Conversion automatique en Base64 et types d'horodatage sur les entrées/sorties
Désormais, le kit SDK encode et décode automatiquement les valeurs codées en base64 ainsi que les valeurs d'horodatage, pour le compte de l'utilisateur. Cette modification affecte toutes les opérations dans lesquelles des valeurs en base64 ou d'horodatage ont été envoyées par une demande ou retournées dans une réponse qui autorise les valeurs codées en base64.
Le code utilisateur qui permettait auparavant de convertir en base64 n'est plus nécessaire. Les valeurs codées en base64 sont désormais retournées comme objets tampon à partir des réponses du serveur et peuvent également être transmises comme entrée de tampon. Par exemple, les paramètres SQS.sendMessage de la version 1 suivants :
var params = { MessageBody: 'Some Message', MessageAttributes: { attrName: { DataType: 'Binary', BinaryValue: new Buffer('example text').toString('base64') } } };
Peuvent être réécrits comme suit.
var params = { MessageBody: 'Some Message', MessageAttributes: { attrName: { DataType: 'Binary', BinaryValue: 'example text' } } };
Voici comment le message est lu.
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 a été déplacé. RequestId à Response.RequestId
Le SDK stocke désormais les demandes IDs pour tous les services à un endroit cohérent sur l'responseobjet, plutôt qu'à l'intérieur de la response.data propriété. Cela améliore la cohérence entre les services qui exposent IDs les demandes de différentes manières. Il s'agit également d'une modification avec rupture qui renomme la propriété response.data.RequestId en response.requestId (this.requestId dans une fonction de rappel).
Dans votre code, modifiez les éléments suivants :
svc.operation(params, function (err, data) { console.log('Request ID:', data.RequestId); });
Jusqu'à ce qui suit :
svc.operation(params, function () { console.log('Request ID:', this.requestId); });
Éléments d'encapsuleur exposés
Si vous utilisez AWS.ElastiCache, AWS.RDS ou AWS.Redshift pour certaines opérations, vous devez accéder à la réponse via la propriété de sortie de niveau supérieur dans la réponse.
Par exemple, la méthode RDS.describeEngineDefaultParameters utilisée pour retourner ce qui suit.
{ Parameters: [ ... ] }
Désormais, elle retourne ce qui suit.
{ EngineDefaults: { Parameters: [ ... ] } }
La liste des opérations concernés pour chaque service est affichée dans le tableau suivant.
| Classe client | Opérations |
|---|---|
|
|
|
|
|
|
Propriétés client abandonnées
Les propriétés .client et .Client ont été supprimées des objets de service. Si vous utilisez la propriété .Client sur une classe de service ou la propriété .client sur une instance d'objet de service, supprimez ces propriétés à partir de votre code.
Le code suivant utilisé avec la version 1 du SDK pour JavaScript :
var sts = new AWS.STS.Client(); // or var sts = new AWS.STS(); sts.client.operation(...);
Doit être remplacé par le code suivant.
var sts = new AWS.STS(); sts.operation(...)