Мы пытаемся перевести наш zip-микросервис с обычного приложения в nodejs Express на AWS API Gateway, интегрированный с AWS Lambda.
Наше текущее приложение отправляет запрос в наш API, получает список вложений, а затем посещает эти вложения и передает их содержимое обратно пользователю в виде zip-архива. Это выглядит примерно так:
module.exports = function requestHandler(req, res) {
//...
//irrelevant code
//...
return getFileList(params, token).then(function(fileList) {
const filename = `attachments_${params.id}`;
res.set('Content-Disposition', `attachment; filename=${filename}.zip`);
streamFiles(fileList, filename).pipe(res); <-- here magic happens
}, function(error) {
errors[error](req, res);
});
};
Мне удалось сделать все, кроме части, в которой я должен выводить контент из функции Lambda.
Я думаю, что одним из возможных решений является использование aws-serverless-express, но я бы хотел более элегантное решение.
У кого-нибудь есть идеи? Можно ли даже выйти из Lambda?