#typescript #amazon-web-services #aws-lambda #aws-cdk #yarn-workspaces
#typescript #amazon-веб-сервисы #aws-lambda #aws-cdk #yarn-рабочие пространства
Вопрос:
Я создаю проект typescript с AWS CDK.
Я пытаюсь настроить серверную часть, в которой у меня есть несколько лямбда-функций, которые используют общую библиотеку (которая в конечном итоге будет взаимодействовать с dynamo-db).
Я создал очень простую демонстрационную версию с одним hello-world
импортом лямбды из одного общего my-lib
пакета (с использованием рабочих пространств yarn). https://github.com/ziggy6792/aws-cdk-lambda-shared-package
Если я разверну этот стек в AWS и запущу свой hello-world
лямбда-код (путем тестирования с консоли AWS), он сработает! (Он успешно импортирует my-lib
, не выдает ошибок).
Однако я не могу локально издеваться над своей лямбда-функцией.
Я пытался использовать этот метод (который я нашел здесь) для локального макета (этот метод отлично работает, когда я не импортирую свой общий my-lib
).
cdk synth --no-staging > template.yml
(чтобы найти логическую лямбда-функцию id =HelloWorldLambda5A02458E
)sam local invoke HelloWorldLambda5A02458E
Но я получаю сообщение об ошибке
{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'my-lib/MyLib'nRequire stack:n- /var/task/index.jsn- /var/runtime/UserFunction.jsn- /var/runtime/index.js"}
Кажется sam local invoke
, он не знает о моей зависимости рабочей области yarn от my-lib
Мой вопрос
- Как я могу протестировать свою лямбда-функцию локально (невозможность локального тестирования является для меня препятствием)?
Большое спасибо