Как стать автором
Обновить

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

Интересно, а при развертывании функции, поливает ли вас рекламой от яндекс такси/знакомств cli того же yandex-cloud.

Несколько замечаний:


1) Вместо path: event.url нужно писать path: event.url.replace(/\?.*/, ""), иначе это нарушает спецификацию (и OpenAPI, и Express). @koa/router вообще не работает без этого, например.


2) Вместо return serverless(app)(patchedEvent, context) нужно, конечно, закешировать на уровне модуля const _handler = serverless(app) и затем вызывать return _handler(patchedEvent, context)


3) Вместо get: в OpenAPI спецификации нужно использовать x-yc-apigateway-any-method:, чтобы работали POST, PUT и т.д.

Спасибо за полезные уточнения, позволяющие сделать из простого примера в статье решение, более подходящее для продакшена.

is1, подскажите пожалуйста по второму пункту - что дает разделение return на две строки?

Я не могу понять - чем Ваша запись лучше ?

Предложенный мною вариант лучше тем, что первая из двух строк (создание обработчика вызовом serverless(app)) вызовется ровно один раз за время жизни программы. Я же написал: "закешировать [в константе] на уровне модуля".

В предложенном же автором коде новый обработчик создается при обработке каждого запроса, обрабатывает ровно один запрос и затем уничтожается сборщиком мусора. Это медленнее.

Спасибо! теперь понял :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории