AWS.translate не является конструктором - PullRequest
0 голосов
/ 07 мая 2019

Я пишу следующую лямбда-функцию на веб-сайте aws, пытаясь понять основы работы aws translate, но я получаю сообщение об ошибке. AWS.translate не является конструктором

Я посмотрел, и это означает, что перевод не в импортированной версии aws-sdk, но как мне сделать так, чтобы она была?

console.log('Loading function');
var AWS = require('aws-sdk');
var translate = new AWS.translate();

exports.handler = async (event, context) => {
    var params = {
          SourceLanguageCode: 'en', /* required */
          TargetLanguageCode: 'es', /* required */
          Text: 'Hello World', /* required */
    };
    translate.translateText(params, function(err, data) {
        if (err) console.log(err, err.stack); // an error occurred
        else     console.log(data);           // successful response
    });
};

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Это должно быть AWS.Translate(), а не AWS.translate().

Также, если вы работаете с async, предпочтите версию try / catch, используя .promise():

console.log('Loading function');
const AWS = require('aws-sdk');
const translate = new AWS.Translate({ apiVersion: '2017-07-01' }); // Fix API version (best practice)

exports.handler = async (event, context) => {
  try {
    const params = {
      SourceLanguageCode: 'en', /* required */
      TargetLanguageCode: 'es', /* required */
      Text: 'Hello World', /* required */
    };
    const data = await translate.translateText(params).promise();
    console.log(data);
  } catch (err) {
    console.log(err, err.stack);
  }
};
0 голосов
/ 07 мая 2019

Перевод должен быть заглавной T, как это:

var translate = new AWS.Translate();

Как задокументировано здесь .

...