У меня есть микросервис заказа, который написан как лямбда-функция go AWS.
Основная функция с именем order-service связана с API Gateway.Он получает несколько параметров, таких как user_id:int, product_ids:array
of int, создает заказ с артефактами и возвращает сериализованный заказ с order_id и общей ценой.Эта функция вызывает функцию с именем order-item, которая создает элемент order и возвращает их параллельно (для каждого продукта).Эти функции вызывают продукт и пользовательские функции для получения информации о пользователе и продуктах по их идентификаторам.Затем функция заказа вызывает другую лямбду, называемую комиссионной функцией, которая принимает только общую цену и идентификатор пользователя и возвращает комиссионную цену.Конечно, он вызывает другую функцию, такую как пользовательская функция и так далее.По сути, это простой пример того, как сервис работает в целом.Любая функция вызывает некоторые другие, такие как пользовательские скидки, государственные налоги и т. Д.
Вопросы:
- Хорошо ли, что функция заказа вызывает функцию оплаты через Amazon, но она может просто импортироватьПакет обработчика сборок и запуск его внутри себя? (Однако функцию fee можно вызывать извне, поэтому ее также следует развертывать как отдельную функцию)
- Хорошо ли, что каждая функция получает только идентификатор пользователя и загружаетпользователь вызывает функцию пользователя?Возможно, лучше предварительно загрузить это и передать это всюду?Что-то еще?
- Хорошо ли, что одна функция вызывает другие функции, а некоторые другие, и так далее?есть ли лучший подход в моей ситуации?Используйте SNS, функцию Step, инъекции зависимостей / слои aws.
Основная причина, по которой я попросил, - выдерживать тысячи оборотов в минуту и не платить много.
Спасибо за помощь.Я ценю это.