Безсерверный - отдельные обработчики API в конфигурации или в коде? - PullRequest
0 голосов
/ 02 июля 2019

Существует ли функциональная разница или производительность между этими двумя методами обработки маршрутов API в безсерверном режиме.Это то же самое, что и то, как будет использоваться кеширование памяти и контейнера?

  1. Все маршруты идут к одному и тому же обработчику, который затем перенаправляет их внутрь

serverless.yml

functions:
  api:
    handler: lambda.handler
    events:
      - http: ANY /foo
      - http: ANY /home

handler.js

exports.router = async (event, context) => {
  const { path } = event

  switch (path) {
    case '/foo':
      return require('./handlers/foo')(event, context)

   case '/home':
      return require('./handlers/home')(event, context)
      }
}

handlers / foo.js

module.exports = async (event, context) => {
  ...
};

handlers / home.js

module.exports = async (event, context) => {
  ...
};
Назначение разных обработчиков для маршрута в serverless.yml

serverless.yml

functions:
  apifoo:
    handler: handler.foo 
    events:
      - http: ANY /foo
  apihome:
    handler: handler.home
    events:
      - http: ANY /home

handler.js

export const foo = async (event, context) => {
  ...
};

export const home = async (event, context) => {
  ...
};

Возможно, они будут обрабатыватьтак же?Сейчас я использую метод 1, но хочу убедиться, что я настолько эффективен, насколько это возможно.Я понимаю, что aws будет перезагружать лямбду при каждом запросе, но будет поддерживать код, запускаемый вне самой лямбды, немного любопытно, если есть лучшая настройка из двух.

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