2016-10-10 26 views
1
var http = require('http'); 
exports.handler = function(event, context) { 

    var headers = { 
     'content-type': 'application/x-www-form-urlencoded' 
    } 
    var options = { 
    host: 'stage.wings.com', 
    path:'/test-lambda', 
    form: { 
    'days':'3' 
    }, 
    headers:headers 
    }; 
    console.log(options); 

    var req = http.request(options, function(response) { 
     // Continuously update stream with data 
     var body = ''; 
     response.on('data', function(d) { 
      body += d; 
     }); 
     response.on('end', function() { 
      // Data reception is done, do whatever with it! 
      var parsed = JSON.parse(body); 
      console.log("success"); 
      console.log(parsed); 
     }); 
    }); 
    // Handler for HTTP request errors. 
    req.on('error', function (e) { 
     console.error('HTTP error: ' + e.message); 
     completedCallback('API request completed with error(s).'); 
    }); 
}; 

我的节点版本:v0.10.25 如果我在文件上执行它给HTTP错误:插座挂断 从AWS拉姆达如果我运行这个功能,它抛出错误Node.js的HTTP POST请求在AWS上的λ插槽挂断

LAMBDA错误:2016-10-09T23:11:17.200Z 89f2146f-8e75-11e6-9219-b9b32aa0a768错误:插座挂断 在createHangUpError(_http_client.js:200:15) 在Socket.socketOnEnd( _http_client.js:285:23) at emit.eone(events.js:72:20) at Socket.emit(events.js:166:7) at endReadableNT(_st ream_readable.js:905:12) 在nextTickCallbackWith2Args(node.js中:437:9) 在process._tickDomainCallback(node.js中:392:17)

回答

0

有一个超时时间AWS-拉姆达,它将最多300秒后挂断。

这里有一点关于它。 http://docs.aws.amazon.com/lambda/latest/dg/limits.html

你可以使用 context.getRemainingTimeInMillis();这将返回你的lambda剩余时间,所以你可以刷新你的数据。如果此操作的运行时间超过五分钟,则可以在此之前实施某种完全关闭并刷新数据。

+0

我没有发现任何问题,当我做GET请求但问题发生时,我做POST请求。有时它说TCP连接已关闭。 –

+0

你读过答案了吗?除非您自己停止,否则AWS基础架构将在300秒后停止您的lambda。 – bigkahunaburger