AWS представила новый форм-фактор Lambda для запуска обычных HTTP-приложений
AWS представила новый форм-фактор Lambda для запуска обычных HTTP-приложений. Фото: из архива компании
По словам автора анонса Мики Уолтера, разработчики могут взять обычный сервер, прослушивающий порты и созданный на Express, Hono, Fastify, Next.js или любом другом фреймворке Node.js, развернуть его одной командой.
После этого Lambda автоматически возьмёт на себя масштабирование, распределение по нескольким регионам и оплату за использование ЦП. Никаких адаптеров, инфраструктуры для управления и привязки к конкретной платформе при этом не требуется.
AWS Lambda теперь предлагает три различных форм-фактора, построенных на одной и той же технологии изоляции Firecracker и предназначенных для разных моделей программирования.
Функции событий Lambda — это то, что раньше называлось просто функциями Lambda: модель с одним параллельным обработчиком и оплатой по времени, идеально подходящая для обработки событий, потребителей очередей и вызовов, инициируемых другими сервисами AWS.
Lambda Web Functions используют HTTP-ориентированную модель с многопоточным выполнением и активным распределением ресурсов ЦП, что подходит для веб-приложений, бэкэндов API и интерактивных HTTP-нагрузок.
Микровиртуальные машины Lambda предоставляют изолированные, сохраняющие состояние среды-песочницы с управляемым клиентом жизненным циклом для выполнения ненадёжного или созданного пользователем кода.
Все три компонента дополняют друг друга: приложение может использовать Event Functions для асинхронной обработки, Web Functions для пользовательского API и серверного рендеринга, а MicroVMs для интерактивного выполнения кода — в рамках одной учётной записи AWS и одной операционной модели.
Как отмечается в блоге, современные веб-приложения должны обслуживать глобальную аудиторию с быстрой и стабильной реакцией, сохраняя при этом свободу использовать стандартные фреймворки.
Сегодня для этого обычно требуется собирать множество инфраструктурных компонентов, настраивать развёртывание в нескольких регионах, устанавливать маршрутизацию на основе задержки и оптимизировать модели выставления счетов, чтобы не платить за время ожидания ввода-вывода. Lambda Web Functions устраняет эту сложность: каждая среда выполнения обрабатывает до 128 одновременных запросов, поэтому всплеск трафика использует одни и те же среды, а счёт выставляется за фактически использованное процессорное время, из-за чего ожидание запроса к базе данных или вызова API почти не потребляет ресурсов ЦП. Для веб-нагрузок с интенсивным вводом-выводом, таких как серверный рендеринг, бэкэнды API и конечные точки вывода ИИ с потоковыми ответами, это может снизить вычислительные затраты.
В качестве примера автор приводит простой сервер на Express.js, который запускается локально командой node index.js и не требует никаких адаптеров или обёрток, специфичных для Lambda. Единственное отличие от локального запуска — переменная окружения AWS_LAMBDA_HTTP_ENDPOINT, которую Lambda устанавливает как хост и порт для прослушивания запросов.
Развёртывание выполняется одной командой aws lambda-web deploy, которая собирает исходный код, создаёт веб-функцию, публикует её первую версию, подключает конечную точку и возвращает работающий HTTPS-адрес менее чем за минуту.
Для работы с пользователями в Европе и Азии достаточно переразвернуть приложение с поддержкой нескольких регионов, и Lambda автоматически настроит маршрутизацию на основе задержки через единый глобальный URL. Для постепенного внедрения можно перенаправлять трафик между версиями, например 90 процентов на текущую и 10 процентов на новую, с помощью одного вызова API.
Web Functions также хорошо работают в паре с Amazon CloudFront: конечную точку Web Function можно выбрать в качестве источника для распределения CloudFront, чтобы статические ресурсы обслуживались из кэша, а динамические запросы направлялись в функцию.
Кроме того, теперь можно подключить контроль доступа к источнику CloudFront (OAC) к конечной точке Web Function — CloudFront подписывает запросы к источнику, и конечная точка принимает вызовы только от вашего дистрибутива, что даёт тот же шаблон работы с частными источниками, который CloudFront уже предоставляет для Amazon S3, без раскрытия конечной точки и добавления пользовательской авторизации.
AWS Lambda Web Functions доступны сегодня в регионах US East (N Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Tokyo) и Europe (Ireland). Они работают на Node.js 24 (nodejs24.x) на платформе Arm64 и поддерживают подключение к Amazon Virtual Private Cloud (VPC), что позволяет функции получать доступ к ресурсам внутри VPC. Развернуть первую веб-функцию можно командой aws lambda-web deploy --name hello-world --hello-world, подробности о ценах опубликованы на странице цен AWS Lambda, а более детальная информация — в документации по Lambda Web Functions.
Упомянутый сервис
Комментариев пока не было