【问题标题】:How to execute a Linux exec file in an AWS lambda func to process 200 imgs in s3?如何在 AWS lambda func 中执行 Linux exec 文件以在 s3 中处理 200 个 imgs?
【发布时间】:2019-09-26 16:48:45
【问题描述】:

我需要执行一个 Linux 文件来处理一些图像,结构如下:

LinuxCLI -frames -keyFrames -output

这个想法是 lambda 函数将从 s3 存储桶接收 1-400 张图像并作为文件夹传递给 CLI。 我正在使用 node.js 和无服务器框架。 如果需要,我可以更改 CLI 以接受不同的参数。 可以吗?

【问题讨论】:

  • 这是 cli imagemagick 吗?如果是 lambdas 已经安装了它,那么应该是可能的
  • no 不是 ImageMagick ,是自定义 cli。但是,我认为这将是一个很好的起点。你有sn-p代码吗?

标签: node.js amazon-web-services amazon-s3 aws-lambda serverless-framework


【解决方案1】:

在您使用 imagemagick 的情况下,您可以简单地将图像下载到 tmp 文件夹并进行处理,或者使用节点 child processes 运行进程。

如果你想使用 lambda 镜像没有的其他 cli,也可以将它包含在 lamdba 的 zip 中 http://nmajor.com/posts/serverless-framework-executable-binaries-aws-lambda

注意事项:

  • 注意 lambdas 的存储限制,400 张图像取决于图像大小,至少在一次执行中可能有点多
  • tmp 文件夹数据在 lambda 执行之间可能没有持久性

其他可能有帮助的参考资料:

AWS lambdas 限制:https://docs.aws.amazon.com/lambda/latest/dg/limits.html

【讨论】:

  • 谢谢!问题是我需要在最大场景中一次处理 400 张图像,可能低至 3 张,我不确定是否有办法在 lambda 中“系统挂载”s3 对象。
  • 正如我所说,这实际上取决于图像的大小,如果超过了存储限制,您可能需要考虑 lambda 以外的其他内容,如果您的图像,/tmp 文件夹仅允许 512MB有很多超过 2MB 可能你将无法在 lambdas 中做你想做的事情,并且可能使用 ec2 更好,因为你有更多的存储空间和更多的可用内存
  • 使用 aws lambdas 限制编辑
猜你喜欢
  • 2017-01-10
  • 2020-11-09
  • 2019-08-24
  • 2019-12-11
  • 1970-01-01
  • 2020-05-14
  • 1970-01-01
  • 2019-10-19
  • 2019-01-11
相关资源
最近更新 更多