为什么我不能看到这AWS-SDK函数从我的AWS lambda函数内部?

问题描述 投票:2回答:1

我的目标是能够使用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;
};
javascript aws-lambda aws-sdk amazon-cloudwatchlogs
1个回答
2
投票

在布线时,λ-包括在运行时,这是从所述version 2.290.0 AWS SDK的August 2018。然而,StartQuery是only released in November 2018并出现在SDK的version 2.364.0。解决方法是封装的最新版本的SDK自己而不是依赖于包括图书馆。

© www.soinside.com 2019 - 2024. All rights reserved.