Как повторно использовать код в проекте CodeStar?
Я создал проект CodeStar (шаблон Python Webservice в качестве отправной точки), и я использую vscode для его редактирования.
Пока что я настроил сгенерированный проект так, чтобы в нем было две лямбды. Структура выглядит следующим образом:
buildspec.yml
functions/lambda1
functions/lambda2
template-configuration.json
template.yml
Он работает с использованием "sam local start-api" и тестированием с использованием панели инструментов AWS.
Однако мне не удалось повторно использовать код между "lambda1" и "lambda2", кроме копирования и вставки файлов ".py" в каждую лямбду, которая будет использоваться в качестве модулей. Попытался редактировать файл require.txt, чтобы он указывал на git-репозиторий с lib, но безуспешно.
Другая попытка состояла в том, чтобы попытаться добавить "Слой", используя "Лямбда-панель", которая в итоге переписала лямбда-код.
С учетом всего сказанного, есть ли какие-либо предложения о том, как повторно использовать код в проекте CodeStar?
0 ответов
Для создания слоев необходимо отредактировать шаблон Cloudformation проекта CodeStar:
- Создайте слой https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html
- Ссылка на его использование в лямбда-выражении https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
Другие способы повторного использования кода, кроме копирования и вставки одних и тех же файлов в каждую лямбду, - это отложить это до сборки.
Имея структуру папок, такую как:
your_project---- lambda1 -- lambda1_code.py
|
|--- lambda2 -- lambda2_code.py
|
---- common_modules -- common_module.py
И изменение сценария сборки:
- cp ./common_modules/common_module.py ./lambda1/
- cp ./common_modules/common_module.py ./lambda2/