AWS Lambda cloudWatch.getMetricWidgetImage не является функцией - PullRequest
0 голосов
/ 26 октября 2018

В настоящее время я пытаюсь вызвать относительно новый API CloudWatch getMetricWidgetImage из функции Lambda, но постоянно получаю сообщение об ошибке: TypeError: cloudWatch.getMetricWidgetImage is not a function

Функция использует Node.js 8.10, Я развертываю / тестирую из веб-консоли и код ниже.

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);
}
});

1 Ответ

0 голосов
/ 26 октября 2018

Не могли бы вы уточнить, как вы развертываете свою лямбда-функцию?

Это может произойти, если вы случайно включили версию aws-sdk (вместо того, чтобы использовать последнюю, уже предоставленную Amazon, в контейнере).

Функция getMetricWidgetImage была добавлена ​​только в 2.318 (конец сентября; журнал изменений .) Так что вполне вероятно, что любая кешированная версия, которая у вас есть локально, может отставать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...