Я пытаюсь отправить http-запросы в POST из функции amazon-lambda после получения сообщений из очереди amazon (sqs) в мой API.
API интегрирует эти сообщения в мою базу данных.
для этого я использую Node.js с системой обещаний, но когда я отправляю много сообщений в очереди, запросы не отправляются, и я не понимаю, почему.
Я пробовал несколько способов, в том числе с обещанием, но безуспешно
const http = require('http');
var promises = [];
const options = {
host: process.env.Host,
path: process.env.Path,
port: process.env.Port,
method: process.env.Method
};
exports.handler = async (event, context) => {
event.Records.forEach(record => {
const {
body
} = record; // the messages from the bus
promises.push(PromiseCreator(body));
Promise.all(promises)
.then(function(data) {})
.catch(function(err) {
return err
});
});
};
function PromiseCreator(body) {
return new Promise((resolve, reject) => {
const req = http.request(options, (res) => {
resolve('succès');
});
req.on('error', (e) => {
reject(Error(e));
});
// send the request
req.write(body);
req.end();
});
}
Я думаю, что проблема исходит от forEach, но я не знаю, где мне нужно сделать запрос.