Я разработал проект python (v3.6), который развернут и фактически работает в безсердечной лямбде в моей рабочей платформе AWS .В этом проекте используются следующие зависимости:
- awscli==1.16.10
- boto3==1.9.0
- botocore==1.12.0
- psycopg2==2.7.5
- SQLAlchemy==1.2.11
- SQLAlchemy-Utils==0.33.3
- jsonschema==2.6.0
Теперь я хочу использовать localstack для развертывания этого проекта в лямбда-выражении, которое я смогу вызвать для проверки кода вызова (а не кода моего проекта).это действительно работает!)
Чтобы развернуть проект, сначала я устанавливаю зависимости и создаю zip-файл:
pip install -r requirements.txt --upgrade -t ./
chmod -R 755 .
zip -r lambda.zip .
Затем я использую команду (с работающим localstack):
aws lambda --region eu-east-1 --endpoint localhost:4574 \
create-function --function-name mylambda \
--zip-file fileb://lambda.zip
Однако он возвращает ошибку из localstack:
....
localstack_1 | from functools32 import lru_cache
localstack_1 | ImportError: No module named functools32
....
localstack_1 | raise Exception('Unable to get handler function from lambda code.', e)
localstack_1 | Exception: ('Unable to get handler function from lambda code.', ImportError('No module named functools32',))
Модуль functools32 используется jsonschema и доступен только для python 2.7 или <= 3.2.Я использую Python 3.6, поэтому я не могу установить его.Более того, у меня не было этой ошибки при развертывании того же lambda.zip в моей рабочей платформе AWS. </p>
Я действительно не знаю, как решить эту проблему.Если у кого-то есть идея проверить, я буду очень благодарен.
С уважением,