使用无服务器框架v1.0.0,我的服务根目录中有一个'requirements.txt‘,它的内容是相关python包的列表。(例如,请求)。
但是,我最终部署的函数失败了,因为这些依赖项似乎没有作为打包的一部分进行安装
‘无法导入模块'handler':没有命名为requests的模块’
我假设pip安装是无服务器的,但我得到的zip文件很小,显然它不是这样做的,无论是设计还是我的错,因为我错过了什么?是不是因为Lambda做到了这一点?如果是这样的话,我错过了什么?)
是否有文档说明执行此操作所需的内容以及它的工作原理?pip安装这些是无服务器的,还是在aws lambda端?
发布于 2018-04-26 00:21:30
您需要安装serverless-python-requirements和docker
$ npm install serverless-python-requirements然后将以下内容添加到您的serverless.yml
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: non-linux确保您的python虚拟环境在CLI中处于活动状态:
$ source venv/bin/activate使用pip安装任何依赖项-请注意,在CLI中,您可以通过终端文本左侧的venv来判断venv是否处于活动状态
(venv) $ pip install <NAME>
(venv) $ pip freeze > requirements.txt确保您已打开docker,然后按正常方式部署无服务器
$ serverless deploy接下来,serverless-python-requirements将使用lambda环境在docker中为您构建python包,然后将其压缩,以便与其余代码一起上传。
发布于 2017-08-30 03:59:29
现在您可以使用serverless-python-requirements了。它既适用于纯Python,也适用于需要本地编译的库(使用Docker):
一个Serverless v1.x插件,可以自动绑定requirements.txt中的依赖项,并使其在您的PYTHONPATH中可用。
需要无服务器>= v1.12
发布于 2016-10-18 16:31:26
无服务器框架不处理pip install。有关解决方案,请参阅https://stackoverflow.com/a/39791686/1111215
https://stackoverflow.com/questions/40071125
复制相似问题