我正在尝试在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);
});
});
}
答案 0 :(得分:0)
函数执行后,您需要调用callback
。
exports.handler = async (event, context, callback) => {
const response = await getRequest(urltohit);
console.log(response);
callback(null);
}
在调用回调之前,保持函数运行一直是lambda行为。
可以在官方documentation