#python #aws-lambda #serverless-framework
#python #aws-lambda #бессерверный фреймворк
Вопрос:
У меня следующая структура
Я пытаюсь импортировать утилиты внутри handler.py
Я попытался дать как
from src.utils import *
from utils import *
также пытался добавить
import os
import sys
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
и
import os
import sys
sys.path.append('src')
но ничего не работает
Я использую бессерверную платформу, а не загружаю zip-файл вручную
Много пробовал, но ничего не работает…
Любая помощь, высоко ценится.
Спасибо
Комментарии:
1. Это сбивает с толку, потому что, исходя из того, что вы предоставили, это кажется правильным, у вас где-то есть опечатка? Или где вы видите ошибку импорта, это когда вы развертываетесь в среде или вы видите из IDE, что вы не можете получить доступ к чему-либо из утилит?
2. избавьтесь от каталога src и переместите свои скрипты python на корневой уровень. aws.amazon.com/premiumsupport/knowledge-center /…
3. Вы решили это?
Ответ №1:
Вы можете установить serverless-functions-base-path
плагин и использовать.
Ознакомьтесь с руководством по плагину здесь https://www.serverless.com/plugins/serverless-functions-base-path
Если ваш бессерверный файл.yml и src в каталоге, вы можете добавить это к вашему бессерверному файлу.yml и попробовать развернуть
custom:
functionsBasePath: src
plugins:
- serverless-functions-base-path
Ответ №2:
Для этого вы можете использовать бессерверный плагин python-requirements.
Он может быть установлен локально или на конвейере с
sls plugin install -n serverless-python-requirements
Вы можете добавить это в свой бессерверный файл.yml и попробовать развернуть
# this part might not be needed depending on size of utils
custom:
pythonRequirements:
zip: true
# This plugin allows us import dependencies
plugins:
- serverless-python-requirements
Ознакомьтесь с руководством по плагину здесь
https://www.serverless.com/blog/serverless-python-packaging
https://www.npmjs.com/package/serverless-python-requirements