首页 > 解决方案 > 连接 S3 - Lambda - EC2 - Elasticsearch

问题描述

在我的项目中,用户将图像上传到 S3 存储桶中。我创建了一个张量流 resnet 模型来解释图像的内容。基于张量流解释,数据将存储在弹性搜索实例中。

为此,我创建了一个 S3 Bucket、一个在加载图像时触发的 lambda 函数和 AWS elasticsearch 实例。由于我的 tf 模型很大,我将它们压缩并放入 S3 存储桶并将 s3 url 上传到 lambda。

问题:由于我的解压缩文件大于 266 mb,我无法完成 lambda 函数。

替代方法:而不是 S3 Bucket - 我正在考虑创建一个 ec2 实例 - 具有更大的卷大小来存储图像并将图像直接接收到 ec2 实例而不是 s3 中。但是,由于我将在一年内收到数百万张图片,我不确定这是否可以扩展。

标签: amazon-web-servicestensorflowelasticsearchamazon-s3

解决方案


我可以在这里想到两种方法:

  1. 您侧加载应用程序。lambda 可以是一个小的引导脚本,它从 s3 下载您的应用程序并解压缩它。这是无服务器框架中的一种流行模式。您在 lambda 冷启动期间为此付费,因此您需要在生产环境中保持温暖。

  2. 您可以将图像存储在 s3 本身中,并使用目标 SQS 在图像上传时创建事件。然后,您可以使用 ec2 定期提取新消息的 sqs 消息并使用您的 tf 模型处理它们。


推荐阅读