2016-10-10 67 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