Организация вызова лямбда-функций - PullRequest
3 голосов
/ 10 марта 2019

У меня есть микросервис заказа, который написан как лямбда-функция go AWS.

Основная функция с именем order-service связана с API Gateway.Он получает несколько параметров, таких как user_id:int, product_ids:array of int, создает заказ с артефактами и возвращает сериализованный заказ с order_id и общей ценой.Эта функция вызывает функцию с именем order-item, которая создает элемент order и возвращает их параллельно (для каждого продукта).Эти функции вызывают продукт и пользовательские функции для получения информации о пользователе и продуктах по их идентификаторам.Затем функция заказа вызывает другую лямбду, называемую комиссионной функцией, которая принимает только общую цену и идентификатор пользователя и возвращает комиссионную цену.Конечно, он вызывает другую функцию, такую ​​как пользовательская функция и так далее.По сути, это простой пример того, как сервис работает в целом.Любая функция вызывает некоторые другие, такие как пользовательские скидки, государственные налоги и т. Д.

Вопросы:

  1. Хорошо ли, что функция заказа вызывает функцию оплаты через Amazon, но она может просто импортироватьПакет обработчика сборок и запуск его внутри себя? (Однако функцию fee можно вызывать извне, поэтому ее также следует развертывать как отдельную функцию)
  2. Хорошо ли, что каждая функция получает только идентификатор пользователя и загружаетпользователь вызывает функцию пользователя?Возможно, лучше предварительно загрузить это и передать это всюду?Что-то еще?
  3. Хорошо ли, что одна функция вызывает другие функции, а некоторые другие, и так далее?есть ли лучший подход в моей ситуации?Используйте SNS, функцию Step, инъекции зависимостей / слои aws.

Основная причина, по которой я попросил, - выдерживать тысячи оборотов в минуту и ​​не платить много.

Спасибо за помощь.Я ценю это.

1 Ответ

1 голос
/ 10 марта 2019

Это именно то, для чего были созданы пошаговые функции. Вы можете вызывать конечный автомат Step Functions из API Gateway , как если бы это было Lambda.

С помощью функций Step вы можете:

  • вызвать конечный автомат с параметрами
  • Управление порядком вызова лямбда-функций
  • Использование состояния для хранения входов и выходов каждой лямбды
  • Имеют точки принятия решения для выбора различных путей на основе результатов предыдущей функции

Подробное представление об услуге см. В руководстве по началу работы с функциями шага AWS 1018 *.

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