aws cdk локально вызывает общую зависимость рабочей области yarn

#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

Мой вопрос

  1. Как я могу протестировать свою лямбда-функцию локально (невозможность локального тестирования является для меня препятствием)?

Большое спасибо