Должен ли я использовать Express.js в бессерверном приложении?

#express #aws-lambda #serverless

#экспресс #aws-lambda #Бессерверный

Вопрос:

Я хотел знать, использую ли Express.js в качестве промежуточного программного обеспечения в бессерверном приложении (AWS Lambdas) хорошая идея? Меня беспокоит тот факт, что в Express.js существует монофункциональная настройка, и в будущем, если поступит много запросов, она начнет регулироваться. Действительны ли мои опасения или я ни о чем не сомневаюсь.

Комментарии:

1. Рассмотрите возможность использования API-GW и бессерверной среды, вообще говоря (без учета конкретного варианта использования), каждый lambda должен отвечать за одну конечную точку HTTP. Я думаю, что пакеты, подобные aws-serverless-express ему, в основном помогают с переходом с express на бессерверный. поэтому, если вы начинаете с нуля, используйте express своего рода анти-шаблон

Ответ №1:

Решение между созданием моно-лямбды и одной функции на конечную точку не имеет четкого ответа.

С одной стороны, если вы используете cloud formation — вы ограничены 200 ресурсами на стек, что может сделать даже небольшие API с дизайном с одной лямбдой на маршрут громоздким и вынудить вас пойти по пути таких вещей, как разделение стека, которое работает, но добавляет сложности, когда его действительно не должно быть. Кроме того, это значительно усложняет совместное использование кода, поскольку каждая лямбда-функция представляет собой собственный пакет развертывания, поэтому вам нужно использовать такие вещи, как общий каталог, добавляемый вручную, локальные модули NPM или старомодную функцию копирования-вставки, чтобы разделить логику между вашими функциями.

С другой стороны, если вы решите направлять все запросы в lambda, а затем использовать express внутри своей функции для маршрутизации запросов, вы столкнетесь с некоторой сложностью, с которой обычно справляется API Gateway (такие вещи, как проверка шаблона запроса, проверка маршрута или регулирование / управление использованием API).

В конечном итоге вы можете создавать успешные приложения в любом случае, поэтому вам важно учитывать следующие моменты:

  • Количество конечных точек API, которые вы рассматриваете для поддержки
  • Границы домена этих конечных точек (они очень похожи с большим количеством общего кода? Или очень уникальные и аккуратно привязанные к их собственным сервисам)
  • Необходимость в функциях APIGW, таких как регулирование и проверка запросов
  • Уровень комфорта разработчиков с такими фреймворками, как express, или без них.

Комментарии:

1. Спасибо, хотел бы я получить ваш ответ, но я здесь новичок!

2. Спасибо! Рад, что смог помочь

Ответ №2:

Я думаю: Экспресс-запуск http-сервера, но бессерверный (функция Azure, lambda, …) — это http-сервер, основанный на простом скрипте so… почему вы хотите запустить «другой» http-сервер?

Бессерверный — отличный фреймворк, поэтому вам больше ничего не нужно для работы…

Тот же вопрос относится к Loopbak, Fastify, Http / s, Hapi, …

И о маршрутах: https://aws.amazon.com/blogs/aws/api-gateway-update-new-features-simplify-api-development /