Javascript 亚马逊康奈特';s getCurrentMetricData不是函数

Javascript 亚马逊康奈特';s getCurrentMetricData不是函数,javascript,amazon-web-services,aws-lambda,aws-sdk-js,Javascript,Amazon Web Services,Aws Lambda,Aws Sdk Js,最近我正在与Amazon Lambda合作一个项目 我创建了一个lambda函数,如下所示 var AWS = require ('aws-sdk'); exports.handler = (event, context, callback) => { // TODO implement var connect = new AWS.Connect({apiVersion: '2017-08-08'}); var params = { Instance

最近我正在与Amazon Lambda合作一个项目

我创建了一个lambda函数,如下所示

var AWS = require ('aws-sdk');
exports.handler = (event, context, callback) => {
    // TODO implement
    var connect = new AWS.Connect({apiVersion: '2017-08-08'});
    var params = {
        InstanceId: '' /* required */
    };
    connect.getCurrentMetricData(params, function(err, data) {
      if (err) console.log(err, err.stack); // an error occurred
      else   {
            const response = {
                statusCode: 200,
                body: JSON.stringify(data)
            };
            callback(null, data);
      }           // successful response
    });

    // const response = {
    //         statusCode: 200,
    //         body: JSON.stringify(typeof connect.getCurrentMetricData)
    // };
    // callback(null, response);
};
但是日志上说connect.getCurrentMetricData不是一个函数

有人能帮我解决这个错误吗?非常感谢

另外,我在Amazon Lambda在线编辑器(nodejs 8.10)中编写了代码,并测试了其他connect的函数,如createUser、deleteUser,结果的类型是function。仅当涉及getCurrentMetricData时,结果的类型才是未定义的

谢谢


问题解决了。获取最新的AWS-SDK。否则,它将返回getCurrentMetricData不是函数错误。

AWS connect.listQueues的类似问题不是函数。 更新npm模块“aws sdk”,它应该可以正常运行

npm i aws-sdk --save

检查SDK的版本,您使用的是Lambda中的内置包,它可能还没有与包含的此方法兼容。此外,您还需要创建一个部署包,其中包含支持该方法的版本

最新支持的Lambda版本:
https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html

部署包:
https://docs.aws.amazon.com/lambda/latest/dg/nodejs-create-deployment-pkg.html


最后,队列Id必须是ARN或队列Id而不是名称。

如何在lamdba函数上获得最新的sdk?你是通过zip添加的吗?这是唯一的解决办法吗?
npm i aws-sdk --save