我不确定这里有什么不对,但我在节点js下面的lambda不起作用
'use strict';
exports.handler = function (event, context) {
try {
var req = require('request');
var headers = { 'User-Agent': 'Super Agent/0.0.1' };
var options = {
url: 'http://google.com',
method: 'GET',
headers: headers
};
req(options, function (error, response, body) {
console.log(body);
});
以上是正确加载模块但由于某种原因它没有到达console.log(正文)。有人有想法吗?
答案 0 :(得分:1)
我假设您发布的代码是您为lambda编写的代码。 AWS Lambda具有称为处理程序的特定入口点/函数,该函数在调用lambda时运行。因此,每个lambda函数都必须使用此方法来限定lambda。
exports.handler = (event, context, callback) => {
}
也不会自动拉取lambda的外部依赖关系。因此,我们需要使用依赖项压缩整个代码并将其上传到lambda,以便在我们具有外部依赖性的情况下工作。
实施例
lambda.js
var req = require('request');
var headers = { 'User-Agent': 'Super Agent/0.0.1' };
// Configure the request
var options = {
url: 'http://google.com',
method: 'GET',
headers: headers
};
exports.handler = (event, context, callback) => {
req(options, function (error, response, body) {
console.log(body);
callback(error);
});
}
现在让我们将您的目录结构视为
node_modules/
lambda.js
package.json
现在您需要压缩此内容并将其上传到AWS中的lambda。接下来就是将lambda.js指向当前lambda的处理程序。
如果一切正常,您可以在调用lambda后立即查看cloudwatch中的日志。
参考文献:
http://docs.aws.amazon.com/lambda/latest/dg/get-started-create-function.html http://docs.aws.amazon.com/lambda/latest/dg/nodejs-create-deployment-pkg.html