我开发了一个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在lambda中部署这个项目,我可以调用这个lambda来测试我的调用代码(而不是实际工作的项目代码!)
要部署项目,首先安装依赖项并创建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',))
jsonschema使用模块functools32,它仅适用于python 2.7或<=3.2。我正在使用Python3.6,因此无法安装它。另外,当我在我的aws生产平台中部署相同的lambda.zip时,没有这个错误。
我真的不知道怎么解决这个问题。如果有人想查一下,我会非常感激的。
当做,