我不确定这个问题是否正确,还是更适合超级用户。但是,由于我认为我的代码可能做错了什么,所以我在这里尝试。
我创建了一个小的代理lambda函数来调用我的REST API。我正在使用node.js和请求包。这是我的代码:
exports.handler = function (request, context) {
require('request').post({url: 'https://example.com/foo/bar', json:request, timeout:1000}, function(error, response, body){
if(error) {
console.log("Something went wrong:\n" + JSON.stringify(error, null, 2));
context.succeed({failed:true})
} else {
console.log("Returning remote response:\n" + JSON.stringify(body, null, 2));
context.succeed(body);
}
});
console.log("Forwarding request to own backend:\n" + JSON.stringify(request, null, 2));
};
这确实没什么特别,但是我认为应该在1000ms之后取消请求。但是我经常看到由于3000毫秒的超时而取消了执行。我将其增加到30000ms,它开始工作。有时,lambda在500毫秒内被执行,但下一次需要3100毫秒。我不理解为什么会这样。请赐教。
答案 0 :(得分:1)
这可能来自正常行为,即冷启动
使用AWS Lambda时,可以配置函数的容器 花费> 5秒。这使得无法保证<1秒 对事件的响应,例如API网关,DynamoDB,CloudWatch,S3, 等
这是无服务器的一个不错的article,它是什么,以及如何处理它。