Node.js AWS Lambda在不回调的情况下发送Get请求
我想在没有收到响应的情况下调用get服务。基本上,该服务是一个长时间运行的过程,需要大约一分钟的响应时间。为了节省Lambda成本,我希望调用它并立即终止函数。 以下函数调用成功,但服务器未接收到请求,但若我注释掉context.success(),则服务器接收到请求,函数抛出“进程在完成请求之前退出” 代码如下: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", "
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