Мне нужно создать проект интеграции, который при выполнении должен запускать все имитирующие службы aws, такие как S3, API-шлюз, SQS, Dynamo db и SSM. Мы использовали фреймворк serverless.com для разработки лямбда-выражений в Node.js, которые используют указанные выше сервисы AWS внутри компании. Также эти лямбда-выражения вызывают другую лямбда-выражение с использованием шлюза API, где тип X-вызова является событием для асинхронных вызовов.
Любые предложения о том, какой подход следует выбрать для локального запуска этих лямбда-выражений:
- Should i create a serverless project where serverless-offline plugins such as
- serverless-s3-local
- бессерверный - динамо - локальный
- serverless-offline- ssm
- serverless-offline- динамодб
Поэтому, когда этот проект будет выполнен, он запустит эти службы на определенном порту на локальном компьютере.
Используйте SAM Local.
- For this i need to write a sam template as currently i have used serverless.com framework where there is serverless.yml rather than sam template.
- Существует также плагин serverless-sam для экспорта serverless.yml в шаблон sam, однако он выдает ошибку для нескольких частей в serverless.yml, поскольку для некоторых инфра-сборок мы используем вывод выполнения terraform в serverless.yml.
- Эта терраформа недоступна для местных. Так что в основном у меня нет возможности использовать функцию экспорта плагина serverless-sam. Мне нужно будет создать отдельный проект, в котором будет шаблон sam, содержащий спецификацию всех зависимых сервисов AWS.
Используйте библиотеку Python Moto: https://github.com/spulec/moto#stand-alone-server-mode
заранее спасибо