У меня есть AWS Lambda, реализованная в Python 3.7 и развернутая в пакете, расположенном ниже:
universe-UIFunctionCelestial-XXXX
|--universe-0-0-1-SNAPSHOT
| |--src
| | |--lambdas
| | | |--__init__.py
| | | |--celestial_persist_function.py
| | |--__init__.py
На следующем изображении показан этот пакет, развернутый в консоли AWS: ![code portion of Lambda console](https://i.stack.imgur.com/tKyQw.png)
Лямбда доступна через API-шлюз. Его метод GET успешно вызывает Lambda, однако Lambda возвращает следующую ошибку:
Ср 04 марта 09:49:35 UT C 2020: тело ответа конечной точки перед преобразованиями: {"errorMessage": "Невозможно импортировать модуль" universe-0-0-1-SNAPSHOT / src / lambdas / celestial_persist_function ": нет модуля с именем 'sr c'", "errorType": "Runtime.ImportModuleError"}
Ср. 04 марта, 09:49:35 UT C 2020: не удалось выполнить лямбду со статусом 200 из-за ошибки функции клиента: невозможно импортировать модуль 'universe-0-0-1-SNAPSHOT / src / lambdas / celestial_persist_function': нет модуля названный 'sr c'. Идентификатор лямбда-запроса: 381990d0-f193-4e49-b0fa-2c6d736552bd
Ср 04 мар. 09:49:35 UT C 2020: метод завершен со статусом: 502
Я был под впечатлением, что выполнение Python Lambda импортирует лямбду как модуль, поэтому я добавил __init__.py
файлы на каждом уровне. Они могут помочь как в лямбда-импорте, так и в импорте в лямбду, например:
from src.persistence.persistence_service import PersistenceService
Во всяком случае, я пробовал несколько различных устройств и файловых структур. Что я могу делать не так?
Кстати, весь код выполняется локально без проблем.