我想很多人都遇到过同样的问题。我试图找到每个可能的博客并尝试所有方法。我已经到达这一点,并停留在这里。
我正在使用无服务器框架和virtualenv。
serverless.yml:
service: test-pandas
provider:
name: aws
runtime: python2.7
plugins:
- serverless-python-requirements
package:
exclude:
- venv/**
- node_modules/**
functions:
hello:
handler: validation.hello
validation.py:
import pandas as pd
import numpy as np
def hello(event, context):
return "hello world"
我正在使用python 2.7。我已经在Virtualenv中运行了以下命令:
virtualenv venv --python=python2
source venv/bin/activate
pip install pandas
pip freeze > requirements.txt
cat requirements.txt
在创建requirements.txt之前,错误是“没有名为pandas的导入模块”,并且在设置了serverless-python-requirements之后,我得到了“缺少必需的依赖项['numpy']”。
我在这里想念东西吗?
答案 0 :(得分:1)
我使用Docker打包Lambda函数并将其与库一起部署。
在serverless.yml中添加以下内容:
custom:
pythonRequirements:
dockerizePip: non-linux
确保Docker在您的机器上运行,并使用无服务器命令进行部署。我注意到的另一件事是,在使用Docker之后,.zip文件大小减少了几乎原始文件大小的一半。