Почему я не вижу эту функцию aws-sdk внутри моей функции AWS Lambda? - PullRequest
0 голосов
/ 06 февраля 2019

Моя цель здесь - иметь возможность использовать функцию AWS CloudWatchLogs.startQuery из функции обработчика моей AWS Lambda.Этот метод существует, когда я запускаю его локально через nodejs, но он не определен, когда я запускаю в своем обработчике.Я думаю, что я делаю то же самое в обоих местах, но я получаю разные результаты.Для сравнения, я могу увидеть метод filterLogEvents в обоих местах, как я и ожидал.Оба метода описаны в AWS javascript SDK .Почему я не вижу эту функцию внутри моей лямбды?

Мой код nodejs:

var AWS = require('aws-sdk');
AWS.config.loadFromPath('./aws_credentials.json');
AWS.config.update({
    region: 'us-east-1',
    apiVersion: '2014-03-28'
});

var cloudwatchlogs = new AWS.CloudWatchLogs();
var filterlogevents_type = typeof cloudwatchlogs.filterLogEvents;
var startquery_type = typeof cloudwatchlogs.startQuery;

console.log(startquery_type);      // function 
console.log(filterlogevents_type); // function

Из файла index.js моей лямбды:

var AWS = require('aws-sdk');
AWS.config.update({
    region: 'us-east-1',
    apiVersion: '2014-03-28'
});
exports.handler = async (event) => {
    var cloudwatchlogs = new AWS.CloudWatchLogs();
    var filterlogevents_type = typeof cloudwatchlogs.filterLogEvents;
    var startquery_type = typeof cloudwatchlogs.startQuery;

    const response = {
        body: JSON.stringify({
            startQuery: startquery_type,           // undefined
            filterLogEvents: filterlogevents_type  // function
        }),
    };
    return response;
};

1 Ответ

0 голосов
/ 06 февраля 2019

На момент подключения Lambda включает версию 2.290.0 пакета AWS SDK во время выполнения, начиная с август 2018 .Однако StartQuery был выпущен только в ноябре 2018 года и появился в версии 2.364.0 SDK.Временное решение: самостоятельно упаковать последнюю версию SDK, а не полагаться на включенную библиотеку.

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