我目前正在尝试从Lambda函数调用相对较新的CloudWatch API getMetricWidgetImage
,但是我不断收到错误消息:TypeError: cloudWatch.getMetricWidgetImage is not a function
该功能使用的是Node.js 8.10,我正在从Web控制台进行部署/测试,代码如下。
const AWS = require('aws-sdk');
let cloudWatch = tempCredentials ? new AWS.CloudWatch({credentials:tempCredentials, region: 'us-east-1', apiVersion: 'latest'}) : new AWS.CloudWatch({region: 'us-east-1', apiVersion: 'latest'});
console.log(cloudWatch);
cloudWatch.getMetricWidgetImage(widgetDefinition, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data.MetricWidgetImage);
var response = {
statusCode: 200,
headers: {
'Content-Type' : 'image/png',
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods' : 'POST, GET, PUT, OPTIONS',
'Access-Control-Allow-Headers' : 'x-api-key'
},
body: new Buffer(data.MetricWidgetImage).toString('base64')
};
callback(err, response);
}
});
答案 0 :(得分:2)
您能说明一下如何部署lambda函数吗?
如果您不小心包含了aws-sdk版本(而不是在容器中使用Amazon已经提供的最新版本),则会发生这种情况。
getMetricWidgetImage
函数仅在2.318(9月底; change log)中添加。因此,您本地拥有的任何缓存版本都可能落后于此。