Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aws lambda 无服务器框架-Python和Requirements.txt_Aws Lambda_Serverless Framework - Fatal编程技术网

Aws lambda 无服务器框架-Python和Requirements.txt

Aws lambda 无服务器框架-Python和Requirements.txt,aws-lambda,serverless-framework,Aws Lambda,Serverless Framework,使用无服务器框架v1.0.0,我的服务根目录中有一个'requirements.txt',内容是依赖python包的列表。(例如请求) 然而,我最终部署的函数失败了,因为这些依赖项似乎没有作为打包的一部分安装 “无法导入模块处理程序”:没有名为请求的模块” 我假设是无服务器安装了pip,但是我得到的zip文件很小,很明显它没有安装pip,无论是设计上的原因还是我的错,因为我遗漏了什么?是不是因为是Lambda做的?如果是这样,我遗漏了什么?) 是否有文件说明需要做什么以及它是如何工作的?pip是

使用无服务器框架v1.0.0,我的服务根目录中有一个'requirements.txt',内容是依赖python包的列表。(例如请求)

然而,我最终部署的函数失败了,因为这些依赖项似乎没有作为打包的一部分安装

“无法导入模块处理程序”:没有名为请求的模块”

我假设是无服务器安装了pip,但是我得到的zip文件很小,很明显它没有安装pip,无论是设计上的原因还是我的错,因为我遗漏了什么?是不是因为是Lambda做的?如果是这样,我遗漏了什么?)


是否有文件说明需要做什么以及它是如何工作的?pip是在无服务器端安装这些还是在aws lambda端安装?

无服务器框架不处理
pip安装
。有关现在可以使用的解决方案,请参见。它适用于纯Python和需要本机编译的库(使用Docker):

一个无服务器v1.x插件,用于自动绑定requirements.txt中的依赖项,并使它们在PYTHONPATH中可用


需要无服务器>=v1.12

您需要安装
无服务器python要求

然后将以下内容添加到
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
将会发生的事情是,
serverless python requirements
将使用lambda环境在docker中构建python包,然后将其压缩,以便与其余代码一起上载


我不认为无服务器运行pip。在部署serverless项目之前,您必须自己运行它。下面的详细指南如果您在使用
$serverless deploy
命令时遇到问题,您可能必须删除冗余的节点模块,这些模块可能在过去工作过,就像我的情况一样。我必须执行以下命令:``$rm-rf node_modules$npm install serverless python requirements$serverless deploy```
(venv) $ pip install <NAME>
(venv) $ pip freeze > requirements.txt
$ serverless deploy