#python #amazon-web-services #aws-lambda #aws-sam #aws-sam-cli
#python #amazon-веб-сервисы #aws-лямбда #aws-sam #aws-sam-cli
Вопрос:
У меня следующая структура папок
src
-- functions
-- Test
-- __init__.py
-- app.py
-- create_data.py
-- template.yaml
Внутри app.py
у меня есть это:
from .create_data import create_data
....
def handler(event, context):
return create_data(item=event)
...
В моем шаблоне.yaml у меня есть:
TestFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: src/functions/Test
Handler: app.handler
....
Итак, моя идея состоит в том, чтобы иметь app.py
который обрабатывает запрос и использует другой .py
(в этом случае create_data.py
) для обработки запроса и сохранения в базе данных
Но, когда я пытаюсь запустить функцию (локально или на шлюзе API) Я получаю сообщение об ошибке:
{"errorType":"Runtime.ImportModuleError","errorMessage":"Unable to import module 'app': attempted relative import with no known parent package"}
Если я удалю импорт create_data
, это сработает.
Как мне это исправить? Я имею в виду, я не хочу всегда помещать ВЕСЬ свой код в app.py
, я хотел бы разделить на файлы
Комментарии:
1. Я надеюсь, что вы найдете эту тему полезной, github.com/aws/aws-sam-cli/issues/1963#issuecomment-624425404