Использование AWS API Gateway + Lambda без зависимости - PullRequest
2 голосов
/ 22 апреля 2019

Нет сомнений в преимуществах API Gatway + Lambda для микро-сервисов.

Меня беспокоит то, что произойдет, если мы решим перейти с API Gateway + Lambda на ECS / Fargate или даже на другоеОблако.

Похоже, что существует консенсус в отношении использования одной лямбда-функции на маршрут / действие.

У меня есть несколько теорий о том, как спроектировать с использованием этого подхода, чтобы код можно было отключить от лямбдыи подключил кое-где еще.

Я также хотел бы знать, что другие члены сообщества сделали для этого?Кто-нибудь пытался убрать API с Lambda и смог успешно сделать это с помощью дизайна XXXX?Какие уроки там?

Язык не должен иметь большого значения для этого обсуждения, но мы используем python3

1 Ответ

0 голосов
/ 22 апреля 2019

То, с чем вы сейчас сталкиваетесь, имеет название.Это называется "блокировка поставщика".Практически ничего не поделаешь.

Однако я считаю полезным рассматривать функцию обработчика лямбда-AWS как контроллер на вашем веб-сервере.Что бы вы сделали в вашем контроллере?Вы будете проверять входящие данные, передавать их на уровень сервиса, а затем сериализовать ответ от сервиса и передавать его обратно в API Gateway.Короче говоря, ваша функция-обработчик не должна содержать бизнес-логику, которая облегчает миграцию даже с безсерверных на серверные.Это также может быть хорошо, потому что оставляет место для оптимизации.Если вы в конечном итоге увидите, что ваша архитектура уровня сервиса добавляет значительное время к холодному запуску, просто перенесите его в один файл.Это будет работать быстрее, но вы жертвуете удобством сопровождения кода.Там нет серебряной пули, программное обеспечение всегда было о компромиссах.:)

...