我想在 API 网关调用的 lambda 函数内执行 http 请求。问题是,请求需要一些时间来完成(<20 秒)并且不希望客户端等待响应。在我对异步请求的研究中,我了解到我可以通过X-Amz-Invocation-Type:Event标头以使请求异步执行,但是这不起作用并且代码仍然“等待”http 请求完成。
下面是我的 lambda 代码:
'use strict';
const https = require('https');
exports.handler = function (event, context, callback) {
let requestUrl;
requestUrl = event.queryStringParameters.url;
https.get(requestUrl, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
}).on('error', (e) => {
console.error(e);
});
let response = {
"statusCode": 200,
"body": JSON.stringify(event.queryStringParameters)
};
callback(null, response);
};
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。