Можно ли выставить несколько приложений Express под разными портами на Amazon Lambda?Давайте предположим следующую структуру в моей локальной установке:
const express = require('express')
const http = require('http')
const app = express()
const app2 = express()
app.get('/', (req, res) => {
res.end('Hello from App!\n');
})
app2.get('/', (req, res) => {
res.end('Hello from The Second App!\n');
})
http.createServer(app).listen(3000);
http.createServer(app2).listen(4000);
Затем, когда я готовлю это к лямбде, мне нужна функция-обработчик, которая, вероятно, завершит файл следующим образом:
[...]
//http.createServer(app).listen(3000);
//http.createServer(app2).listen(4000);
const server = awsServerlessExpress.createServer(app, null, binaryMimeTypes);
exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context)
Возможно, я не являюсь типичным вариантом использования, но у меня уже есть проект, который состоит из нескольких приложений под разными портами и сервера веб-сокетов.Я хотел бы переместить его в Lambda.Итак, в конце концов, чтобы получить доступ к серверу с помощью:
<url_api_gateway>.us-east-1.amazonaws.com:3000
<url_api_gateway>.us-east-1.amazonaws.com:4000
Есть ли способ выставить каждый порт отдельно на Lambda с помощью API Gateway и CloudFormation?Кроме того, было бы возможно выставить диапазон портов, поскольку есть сценарий для динамического назначения портов?
Если это невозможно, есть ли способ сделать отображение порта на URL, например:
<url_api_gateway>.us-east-1.amazonaws.com/app1 --> PORT 3000
<url_api_gateway>.us-east-1.amazonaws.com/app2 --> PORT 4000
Для ясности, app2 - это прокси-сервер HTTP, который невозможно интегрировать в приложение.Заранее спасибо.