如何使用AWS lambda验证S3的zip结构

时间:2018-03-02 09:00:09

标签: node.js amazon-web-services lambda

  1. 使用Java代码我正在创建一个zip文件
  2. 然后我们使用不同的Web服务/ Web应用程序将zip文件上载到AWS S3
  3. 现在我想验证zip是否包含某些文件夹以验证预期的zip结构。
  4. 目前,我正在将zip文件上传到我的应用服务器,然后验证zip结构并在验证上传到S3之后
  5. 我想要的是将zip直接上传到S3而不进行验证。
  6. 接下来,我想触发一个lambda函数,在lambda函数中我想验证zip结构
  7. 问题: -

    是否可以从S3下载zip文件lambda进行处理? zip文件大小可以超过1 GB

2 个答案:

答案 0 :(得分:0)

这些是aws lambda的主要zip限制

  1. Lambda函数部署包大小(压缩.zip / .jar 文件) - 50 MB
  2. 您可以压缩到部署包中的代码/依赖项的大小 (未压缩的.zip / .jar大小)。 - 250 MB
  3. 请注意

    每个Lambda函数在其自己的/ tmp目录中再接收500MB的非持久磁盘空间。 / tmp目录可用于在函数初始化期间加载依赖库或数据集等其他资源。

    更多详细信息请查看this

答案 1 :(得分:0)

我不认为将整个大文件下载/加载到单个lambda函数是个好主意,因为它只有1Gb的内存和512Mb的临时磁盘空间

您的解决方案应该取决于具体要求(您期望的文件数量是多少,是否是不变的工作负载,您是否需要它来扩展非常繁重的工作负载......)

如果您想在执行任何操作之前先将文件上传到S3,这是我能想到的方式之一

  • 使用EBS生成EC2实例。将其设置为共享驱动器(注意:驱动器越大,IOPS性能越好)
  • 利用S3 support for Range request,使用Lambda将文件作为多个部分下载并将其加入共享驱动器
  • 创建另一个lambda函数以验证在共享驱动器上创建的文件,然后将其删除。

取决于您的工作负载,您可以使用预配置的IOPS驱动器,某种节流方法(可能是SQS)

关于内存和磁盘空间有限的问题。我想很多人和你在同一条船上

https://forums.aws.amazon.com/thread.jspa?threadID=179785