Python 如何从s3 bucket和单独的事件JSON加载依赖项?

Python 如何从s3 bucket和单独的事件JSON加载依赖项?,python,amazon-web-services,amazon-s3,aws-lambda,dependencies,Python,Amazon Web Services,Amazon S3,Aws Lambda,Dependencies,AWS Lambda函数的依赖项大于允许的限制,因此我将它们上载到s3存储桶。我已经了解了如何使用s3 bucket作为Lambda函数的事件,但是我需要将这些包与单独的事件结合使用。s3 bucket只包含python模块(numpy,nltk等)而不包含Lambda函数中使用的事件数据 如何执行此操作?事件数据将来自您配置的任何事件源。有关S3事件源,请参阅文档 至于依赖项本身,您必须压缩整个代码库(代码+依赖项),并将其用作部署包。您可以在文档中找到关于这方面的详细说明。作为参考,这里是一

AWS Lambda函数的依赖项大于允许的限制,因此我将它们上载到s3存储桶。我已经了解了如何使用s3 bucket作为Lambda函数的事件,但是我需要将这些包与单独的事件结合使用。s3 bucket只包含python模块(
numpy
nltk
等)而不包含Lambda函数中使用的事件数据


如何执行此操作?

事件数据将来自您配置的任何事件源。有关S3事件源,请参阅文档

至于依赖项本身,您必须压缩整个代码库(代码+依赖项),并将其用作部署包。您可以在文档中找到关于这方面的详细说明。作为参考,这里是一个为和

Protip:管理依赖关系的更好方法是使用Lambda层。您可以创建一个层,该层将包含所有依赖项,然后将其添加到使用这些依赖项的函数中。阅读更多关于它的信息

如果您的依赖性仍然高于AWSλ512MB硬限制,您可以考虑使用Alam-HasbFrand文件系统。 现在,您基本上可以将网络存储连接到lambda函数。我个人使用它来加载超过Lambda文件存储限制的巨大参考文件。有关演练,您可以参考AWS的这篇文章。从文章中得出结论:

EFSForLambda允许您跨函数调用共享数据,读取大型引用数据文件,并将函数输出写入持久和共享存储。配置EFS后,将为Lambda函数提供一个访问点ARN,允许您读取和写入此文件系统。Lambda将功能实例安全地连接到同一可用性区域和子网中的EFS装载目标

你可以阅读公告


编辑1:为lambda信息添加了EFS。

我在s3中转储它们的原因是因为我的依赖项zip文件太大了。在s3中,我有一个更大的存储限制。我的问题是,我可以在这里访问依赖项吗。我尝试使用Lambda层,但我的文件仍然太大。@DesiPilla,如果依赖项在S3上,则无法“使用”它们。在使用它们时,仍然必须将它们传递给python解释器。我已经用一个可能的解决方案更新了答案,以达到512MB AWS lambda存储限制。@DesiPilla,如果答案确实解决了您的问题,您介意接受它吗。这样,其他偶然发现这一点的人可以很容易地找到解决办法。干杯。对不起,直到今天我才在我的项目中实现EFS。它解决了我的问题,谢谢!一个有用的答案,救了我一天。