在59.05秒后让Task超时aws lambda nodejs

时间:2018-08-22 08:47:36

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

我正在尝试在AWS Lambda支持的节点8.10中编写Lambda函数  这是参考我以前的question

我正在尝试节点async / await,当我在本地运行它时,相同的代码工作了(甚至没有花一秒钟的时间来获取响应),但是当我在lambda中尝试它得到超时错误时,这里代码控制进入了promise并使用正确的url打印 url urltohit ,但是在卡住之后,尝试了诸如增加lambda config中的时间之类的尝试,甚至尝试了节点请求而不是http,但是仍然同样的错误。

“严格使用”;

var http = require('http');
var request = require('request');

exports.handler = async (event) => {
  const response = await getRequest(urltohit);
  console.log(response);

}
 const getRequest = async (url) => {
  console.log("Test log");
  return new Promise((resolve, reject) => {
    console.log(`url ${url}`);
      http.get(url, function(res) {
          console.log("Got response: " + res.statusCode);
          resolve(res.statusCode);
      }).on('error', function(e) {
          console.log("Got error: " + e.message);
          reject(e.message);
      });
  });
}

1 个答案:

答案 0 :(得分:0)

函数执行后,您需要调用callback

exports.handler = async (event, context, callback) => {
  const response = await getRequest(urltohit);
  console.log(response);
  callback(null);
}

在调用回调之前,保持函数运行一直是lambda行为。
可以在官方documentation

中找到更多信息