我正在测试开发如何使用 Lambda 和 S3 以及其他可能的 AWS 服务来创建 Web 服务。
背景是使用使用Gensim构建的LDA模型来分析S3中存在的文本文件。目标是使用 Lambda 的事件触发器来自动分析上传到 S3 存储桶中的文本。
到目前为止,我已经尝试在 Lambda 中创建简单的函数来打印和记录上传到 S3 存储桶的项目属性。然而,分析是一个问题,因为需要 LDA 模型来执行分析。
我可以通过调用以下键来提取 S3 中的对象:
s3resource = boto3.resource('s3')
obj = s3resource.Object(BucketName, Key)
response = obj.get()
data = response['Body'].read()
然而,这使得数据变量为字符串。我需要提取元数据,以便将其加载到模型对象中。所以更多的风格是:
model = obj.get()...
第一:这可能吗?将 200-300mb 左右的模型文件加载到 Lambda 的内存中以执行任务?
第二:由于应该为每个文件重复调用此任务,我的逻辑告诉我找到将模型存储在持久内存中以节省获取时间的方法......是否可以在其他地方进行更有效的对象传递?
PS 执行分析所需的参数是:模型、wordid dict、需要分析的实际文本。
任何帮助将不胜感激,如果有更好的选择,那也将非常棒。
谢谢。