AWS节点JS与请求

问题描述:

我不知道什么是错在这里,但我下面的拉姆达在节点JS不工作AWS节点JS与请求

'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

也许这是错误?尝试添加'if(!error && response.statusCode == 200)'和'else console.log(error)'来检查。 –

+0

似乎工作!你可以粘贴你的整个代码的Lambda,你有回调和... – Majid

+0

我不能粘贴整个事情。问题是控制台日志在这里为主体不返回所有的代码继续就好了只是在该请求功能的任何东西不会返回任何想法在控制台中的任何东西? – SernOne

我假设您发布的代码是您为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.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

+0

非常感谢您花时间做出回复,我的代码确实有处理程序,并且我确实按照要求构建了包,其余代码为 [code] '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', 方法:'GET', 标题:标题 }; req(options,function(error,response,body){console.log(body); }); [/ code] – SernOne

+0

机体未在控制台中显示。 – SernOne