AWS.translate 不是构造函数

AWS.translate is not a constructor

我正在 aws 网站上编写以下 lambda 函数,试图了解 aws translate 工作的基础知识,但我收到错误 AWS.translate is not a constructor

我已经查过了,这意味着翻译不在我导入的 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
    });
};

翻译应该是大写 T 像这样:

var translate = new AWS.Translate();

如文档所述here

应该是AWS.Translate()而不是AWS.translate()

此外,如果使用 async,更喜欢使用 .promise():

try/catch 版本
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);
  }
};