Мне нужно создать проект интеграции, который при запуске должен запускать все aws фиктивных сервисов, таких как S3, API-шлюз, SQS, Dynamo db и SSM . Мы использовали serverless.com framework для разработки лямбд в Node.js, которые используют вышеуказанные службы AWS для внутреннего использования. Кроме того, эти лямбда-выражения вызывают другую лямбду с использованием API-шлюза, где тип X-вызова является событием для асинхронных вызовов.
Любые предложения о том, какой подход выбрать для локального запуска этих лямбд:
- Должен ли я создать безсерверный проект, где автономные плагины без сервера, такие как
- serverless- s3 -local
- serverless- Динамо -local
- serverless-offline- ssm
- serverless-offline- DynamodB
Так, когда этот проект выполняется эти службы на указанном c порту на локальной машине.
Использовать SAM Local .
- Для этого мне нужно написать шаблон sam, так как в настоящее время я использовал фреймворк serverless.com, где скорее есть serverless.yml чем шаблон sam.
- Существует также плагин serverless-sam для экспорта serverless.yml в шаблон sam, однако, он выдает ошибку для нескольких частей в serverless.yml, так как для нескольких инфра сборок мы используем вывод выполнение terraform в serverless.yml.
- Эта terraform недоступна для локальных. Так что в принципе у меня нет возможности использовать функцию экспорта плагина serverless-sam. Мне нужно создать отдельный проект, который будет иметь шаблон sam, содержащий спецификации всех зависимых AWS сервисов.
Использование Python Библиотека Moto: https://github.com/spulec/moto#stand -alone-server-mode
Заранее спасибо