试图在AWS Lambda上运行python脚本,但是如果加载virtualenv目录,Lambda会失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了试图在AWS Lambda上运行python脚本,但是如果加载virtualenv目录,Lambda会失败相关的知识,希望对你有一定的参考价值。

我在AWS Lambda上运行了一个运行python脚本的脚本,但是我需要安装boto,所以我创建了一个virtualenv。

但是,如果我将env / *目录传递给Lambda,它只会因系统错误而失败。

我已经ziped并传递了目录然后只是做了一个ls来看它是否存在,但它仍然失败。不知怎的,Lambda对env / *目录不满意,无论是大小还是某些规则,都不确定。它不是python脚本失败,只是加​​载env / *导致失败。

任何人都可以告诉我为什么,或如何解决它

谢谢

Marc Nealer

答案

加载到Lambda时,您只想压缩以下项目

  • /恶女/礼拜/Python2.7/site-packages/
  • 你的python脚本

您可以参考以下亚马逊的说明,我今天早上成功了。 http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html

附: boto3已经预先打包在AWS Lambda中,所以如果这就是您所需要的,您可以通过python脚本中的导入来调用它。

另一答案

关于如何解决它,nstack允许您直接运行Python并具有OS / pip依赖项(因为您可以在Lambda上运行JavaScript)。

完全披露:我是创始人之一。

以上是关于试图在AWS Lambda上运行python脚本,但是如果加载virtualenv目录,Lambda会失败的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 在 AWS Lambda 上运行 SQLAlchemy

Python 脚本作为 AWS S3 存储桶上的 Cron

如何使用 NodeJS 在 AWS Lambda 上运行 PhantomJS

AWS Lambda Python3.7 函数 - numpy:无法导入名称“WinDLL”

如何使用 AWS Lambda 脚本通过 Terraform 部署 AWS 基础设施

AWS Lambda Python 读取所有行但不写入所有行