Предоставление нескольких портов / экспресс-приложений на Amazon Lambda - PullRequest
0 голосов
/ 11 февраля 2019

Можно ли выставить несколько приложений 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, который невозможно интегрировать в приложение.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...