如何处理 AWS Lambda 中的大依赖?

Des*_*lla 3 python amazon-s3 amazon-web-services aws-lambda serverless

我正在使用 AWS Lambda,我需要部署的函数需要许多不同的包。使用serverless-python-requirements生成的 zip 文件为 169.5MB,远大于 50MB 的限制。我曾尝试使用 Lambda 层,但这并不能解决大小问题。

我还尝试将 zip 文件转储到 s3 存储桶中,但是在调用该函数时它仍然太大而无法加载。我需要所有这些包,但我不确定如何部署它们。

我的requirements.txt文件看起来像:

bs4==0.0.1
gensim==3.8.3
matplotlib==3.2.2
nltk==3.5
numpy==1.19.0
openpyxl==3.0.4
pandas==1.0.5
pyLDAvis==2.1.2
spacy==2.3.1
XlsxWriter==1.2.9
Run Code Online (Sandbox Code Playgroud)

May*_*Raj 12

最近,AWS 宣布支持 EFS 对 Lambda 的支持。在此处阅读公告。EFS 或弹性文件系统是计算节点的 NFS 文件系统。在此处阅读有关它们的更多信息。

现在,您基本上可以将网络存储附加到您的 lambda 函数。我个人使用它来加载超过 Lambda 文件存储限制的巨大参考文件。有关演练,您可以参考AWS 的这篇文章。从文章中选择结论:

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