AWS Lambda 图像处理所需的工作流信息

0

【以下的问题经过翻译处理】 我们在EC2上使用PHP和ImageMagick处理图像。处理5000张图像需要大约5小时。因此,我一直在考虑使用Lambda和Sharp进行实现。少数情况下,我们还要处理10-15k张图像。当前,当用户触发导出时,我们的步骤是:

  1. 使用URL检索每个图像并保存到文件夹中,这些图片非常大。
  2. 将每个图像的大小调整为小于1500x1500且小于600KB,存储在第二个文件夹中。
  3. 创建带有每个图像数据的CSV文件,存储在第二个文件夹中。
  4. TAR和GZ调整大小的照片和CSV文件,将tar.gz移动到导出目录并更新数据库。

我认为最好在Lambda中处理图像处理。但是,图像的检索仍然应该来自EC2并保存到S3 Bucket,以触发Lamba吗?如果是这样的话,如何知道何时完成所有处理并从存储桶中压缩、移动、删除所有图像和文件夹? 或者,更好的方式是通过API将URL发送到Lamba,进行图像处理并保存吗?您可以多次发出5000多次API请求并且Lamba可以扩展吗?前者听起来更合理。

无论如何,我正在寻找一些有经验的人来评论,希望得到一些答案。

profile picture
EXPERTE
gefragt vor 5 Monaten30 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 你的计划就是我会做的——Lambda 非常适合这里的场景,只要你可以在 Lambda 支持的最大内存、本地存储和最大运行时限制内处理图像。你没有说“非常大”是多少,但这将是一个有用的指标。

为什么将图像存储在 EC2 实例上?为什么不将它们存储在 S3 中呢?这将更具成本效益,并且 S3 可以根据您的应用程序进行扩展,因此无需确定您的实例必须具有的大小。所以是的,一定要使用 API 网关或通过直接调用 Lambda 函数将 URL 发送到 Lambda 函数。

要确定图像何时被处理,为什么不让 Lambda 函数将原始图像移动到 S3 中的新前缀。然后,您可以让 CloudWatch Events 定期触发另一个 Lambda 函数(每分钟一次、两分钟一次、五分钟一次 - 无论您喜欢什么)扫描上传前缀,如果它为空,则进行最终处理。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen