为什么在我的 AWS Lambda 函数中看不到这个 aws-sdk 函数?
Why can't I see this aws-sdk function from inside my AWS Lambda function?
我的目标是能够在我的 AWS Lambda 处理函数中使用 AWS CloudWatchLogs.startQuery
函数。当我通过 nodejs 在本地 运行 它时,此方法存在,但当我 运行 在我的处理程序中时,它是未定义的。我想我在两个地方都做同样的事情,但我得到不同的结果。作为比较,我可以在两个地方看到 filterLogEvents
方法,正如我所料。 AWS javascript SDK 中记录了这两种方法。为什么我在我的 lambda 中看不到这个函数?
我的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
从我的 lambda 的 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;
};
在布线时,Lambda 包含 version 2.290.0 of the AWS SDK in the runtime, which is from August 2018. However, StartQuery was only released in November 2018 and appeared in the version 2.364.0 的 SDK。解决方法是自己打包最新版本的 SDK,而不是依赖包含的库。
我的目标是能够在我的 AWS Lambda 处理函数中使用 AWS CloudWatchLogs.startQuery
函数。当我通过 nodejs 在本地 运行 它时,此方法存在,但当我 运行 在我的处理程序中时,它是未定义的。我想我在两个地方都做同样的事情,但我得到不同的结果。作为比较,我可以在两个地方看到 filterLogEvents
方法,正如我所料。 AWS javascript SDK 中记录了这两种方法。为什么我在我的 lambda 中看不到这个函数?
我的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
从我的 lambda 的 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;
};
在布线时,Lambda 包含 version 2.290.0 of the AWS SDK in the runtime, which is from August 2018. However, StartQuery was only released in November 2018 and appeared in the version 2.364.0 的 SDK。解决方法是自己打包最新版本的 SDK,而不是依赖包含的库。