AWS Lambda会等待我的回复吗?

时间:2018-04-05 10:43:08

标签: node.js amazon-web-services request aws-lambda

我在项目中使用AWS lambda作为SQS侦听器。有时候我的日志没有响应,大部分时间都在工作。 代码

    console.log('Befor Req ' + post_data);
    // Set up the request
    var post_req = http.request(post_options, function(res) {
        res.setEncoding('utf8');
        res.on('data', function (response) {
            console.log('Request data' + post_data);
            console.log('Response ' + response);

        });
        res.on('error', function (err) {
                console.log(err);
        })
    });
    // post the data
    post_req.write(post_data);
    post_req.end();

这里我在请求之前完成了所有工作,有时请求中的日志没有得到记录。 我检查对方请求和响应被记录,一切正常。

这是AWS LAMBDA的任何特定问题吗?

1 个答案:

答案 0 :(得分:0)

请求中的日志是异步回调,要么记录成功,要么打印失败回调。

如果不是有两个可能性。  一个是你在异步代码完成之前终止lambda

enter image description here

posibility no 2 is,你的lambda在异步请求完成之前得到了超时。看到这种情况可能会在某个时间运行,并在其他时间失败。这取决于我们的异步执行时间和lambda超时

enter image description here

要确保在x秒后检查 cloudwatch日志以查看行任务timedout。如果您在API网关中使用lambda代理,那么您将获得502。见下文

enter image description here