Kur*_*ile 10 aws-lambda serverless-framework
使用无服务器框架v1.0.0,我的服务根目录中有一个'requirements.txt',内容是依赖python包的列表.(例如请求).
但是,由于看起来这些依赖项未作为打包的一部分安装,因此我的部署函数失败了
'无法导入模块'处理程序':没有名为requests的模块'
我认为它是无服务器的pip安装,但我的结果zip文件很小,很明显它没有这样做,无论是设计还是我的错,因为我错过了什么?是因为它的Lambda这样做了吗?如果是这样,我错过了什么?)
是否有文件说明了执行此操作所需的内容及其工作原理?是pip安装这些还是在aws lambda端无服务器?
感谢谢谢!
Gaz*_*dge 11
你需要安装serverless-python-requirements
和docker
$ npm install serverless-python-requirements
Run Code Online (Sandbox Code Playgroud)
然后将以下内容添加到您的 serverless.yml
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: non-linux
Run Code Online (Sandbox Code Playgroud)
确保在CLI中激活了python虚拟环境:
$ source venv/bin/activate
Run Code Online (Sandbox Code Playgroud)
使用pip安装任何依赖项 - 请注意,在CLI中,您可以通过venv
终端文本的左侧判断venv是否处于活动状态
(venv) $ pip install <NAME>
(venv) $ pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
确保已打开docker然后正常部署无服务器
$ serverless deploy
Run Code Online (Sandbox Code Playgroud)
将会发生的事情是serverless-python-requirements
使用lambda环境在docker中构建python包,然后将它们压缩起来,准备好与其余代码一起上传.
现在您可以使用serverless-python-requirements.它适用于纯Python和需要本机编译的库(使用Docker):
一个无服务器v1.x插件,用于自动捆绑requirements.txt中的依赖项,并使它们在您的PYTHONPATH中可用.
需要无服务器> = v1.12
归档时间: |
|
查看次数: |
9101 次 |
最近记录: |