Node.js AWS Lambda在不回调的情况下发送Get请求

Node.js AWS Lambda在不回调的情况下发送Get请求,node.js,lambda,get,long-running-processes,Node.js,Lambda,Get,Long Running Processes,我想在没有收到响应的情况下调用get服务。基本上,该服务是一个长时间运行的过程,需要大约一分钟的响应时间。为了节省Lambda成本,我希望调用它并立即终止函数。 以下函数调用成功,但服务器未接收到请求,但若我注释掉context.success(),则服务器接收到请求,函数抛出“进程在完成请求之前退出” 代码如下: var url = require('url'); var config = { "endpoint_url":"http://www.google.com", "

我想在没有收到响应的情况下调用get服务。基本上,该服务是一个长时间运行的过程,需要大约一分钟的响应时间。为了节省Lambda成本,我希望调用它并立即终止函数。 以下函数调用成功,但服务器未接收到请求,但若我注释掉context.success(),则服务器接收到请求,函数抛出“进程在完成请求之前退出”

代码如下:

var url = require('url');

var config = {
    "endpoint_url":"http://www.google.com",
    "api_user" : "",
    "api_secret": "",
    "function_name": "Stage_FunctionName"
};

exports.handler = function(event, context) {
  var https;
  var host, port, path, parsed_url; 
  parsed_url = url.parse(config.endpoint_url);

  host = parsed_url.hostname;
  port = parsed_url.port;
  path = parsed_url.pathname;

  if(parsed_url.protocol==='https:'){
    https = require('https')  
  }
  else{
    https = require('http')
  }       

  var headers = {'Content-Type': 'application/json'};
  var method = 'GET';
  var options = {
        host: host,
        port: port,
        path: path,
        method: method,
        headers: headers
    };    

  var req = https.request(options);
  req.end();
  console.log(config.function_name + ' - ' + 'Request Sent to ' + config.endpoint_url);
  context.succeed(config.function_name + ' - ' + 'Request Sent to ' + config.endpoint_url);
};

你能显示日志输出吗?我认为错误可能是因为您在context.success()之前调用了req.end()(也可能是context.done()).执行结果:成功----云监视日志:开始请求ID:c6a95eed-f63b-11e5-9a43-3bbbf8297b08版本:$2016-03-30T05:53:50.499Z c6a95eed-f63b-11e5-9a43-3bbbf8297b08阶段\患者通信-发送到结束请求ID:c6a95eed-f63b-11e5-9a43-3bbbf8297b08报告请求ID:c6a95eed-f63b-11e5-9a43-BB97B08持续时间:277.43毫秒计费持续时间:300毫秒内存大小:128 MB最大使用内存:9 MB