#python #amazon-web-services #aws-lambda #amazon-cloudformation #serverless-framework
#python #amazon-веб-сервисы #aws-lambda #amazon-cloudformation #бессерверная платформа
Вопрос:
действительно быстрый вопрос; нужно ли мне устанавливать из командной строки sls plugin install -n serverless-python-requirements
в каждый проект serverless framework, который я создаю, чтобы загружать зависимости python в функцию stack / lambda, которую я собираюсь развернуть?
Я играл с бессерверной платформой, пытаясь использовать ее для проекта, включающего AWS Lambda и python для преобразований csv. Поэтому я хотел бы использовать pandas и numpy в функции Lambda.
У меня установлен Docker, и в файле yaml есть
custom:
pythonRequirements:
dockerizePip: true
plugins:
- serverless-python-requirements
Но мне было интересно, нужно ли мне повторно устанавливать это sls plugin install -n serverless-python-requirements
каждый раз, когда я создаю новый проект. Я заметил, что если я это сделаю, он загрузит два пакета документов json — lock.json и package.json в папку проекта. Но я заметил, что в других руководствах не было этих файлов json, несмотря на использование зависимостей, поэтому я не был совсем уверен, повторяется ли это шаг, который я делаю для каждого проекта.
Ответ №1:
Отличный вопрос!
Бессерверная платформа — это проект, написанный на NodeJS.
В частности sls plugin install
, в основном просто работает npm install
под капотом. Это означает, что sls plugin install
просто извлекает плагин из NPM и устанавливает его (путем добавления его в проект package.json
и package-lock.json
)
Я предполагаю, что вы, вероятно, можете запустить npm i -g serverless-python-requirements
установку библиотеки глобально для своей системы, а затем, я подозреваю, вы могли бы просто объявить плагин в plugins
блоке serverless.yml
файла каждого проекта и готово.
Комментарии:
1. однако выполнение a
npm i -g serverless-python-requirements
в каждой папке проекта (индивидуально для каждого проекта) не является необходимым и обычно не выполняется? Если это так, то я не знаю, почему я так подумал, но это привело меня в странную кроличью нору.2.
-g
устанавливает пакет глобально , что означает, что вам не нужно будет устанавливать его где-либо еще.3. Хорошо, интересно. Да, я объявлял плагины в блоке плагинов каждого файла yaml (как показано в исходном сообщении) для каждого проекта, а затем ТАКЖЕ запускал
sls plugin install -n serverless-python-requirements
каждый проект, но затем задавался вопросом, было ли это чрезмерным.