繁体   English   中英

如何从 s3 存储桶和单独的事件 JSON 加载依赖项?

[英]How to load dependencies from an s3 bucket AND a separate event JSON?

我的 AWS Lambda function 的依赖项大于允许的限制,因此我将它们上传到 s3 存储桶。 我已经看到如何将 s3 存储桶用作 Lambda function 的事件,但我需要将这些包与单独的事件结合使用。 s3 存储桶仅包含 python 模块( numpynltk等),而不是Lambda ZC1C4125268E76A3 中使用的事件数据。

我怎样才能做到这一点?

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

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

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

如果您的依赖项仍高于 AWS Lambda 的 512MB 硬限制,您可以考虑将 AWS Elastic File System 与 Lambda 一起使用。

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

EFS for Lambda allows you to share data across function invocations, read large reference data files, and write function output to a persistent and shared store. 配置 EFS 后,您向 Lambda function 提供访问点 ARN,允许您读取和写入此文件系统。 Lambda 将 function 实例安全地连接到同一可用区和子网中的 EFS 挂载目标。

您可以在此处阅读阅读公告

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM