Javascript 亚马逊康奈特';s getCurrentMetricData不是函数
最近我正在与Amazon Lambda合作一个项目 我创建了一个lambda函数,如下所示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
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