我正在寻找一种方法来运行AWS中用R开发的模拟算法。 R模型的输入将来自S3,并且需要将输出写回到S3。我组织中的数据科学家小组是R专家,并且我的组织已将AWS标识为企业云平台。鉴于此,我需要找到一种在AWS中运行R仿真模型的方法。
我看到了这个博客(https://aws.amazon.com/blogs/compute/analyzing-genomics-data-at-scale-using-r-aws-lambda-and-amazon-api-gateway/),该博客讨论了使用Lambda使用rpy2包在Ptyhon中运行R代码。我计划采用相同的方法。我正计划如下实施Lambda函数-
1)从S3读取输入文件以写入本地Lambda存储(/ tmp)。这将使用Python boto3 SDK完成。
2)使用rpy2调用R算法。我计划将R算法另存为S3中的.RDS文件,并使用rpy2加载它,然后运行R算法。 R算法会将输出写回到本地Lambda存储中。
3)将lambda存储器的输出写入S3。同样,这将使用Python boto3 SDK完成。
如您所见,Python用于与S3交互并将文件带到本地Lambda存储。 R将从本地lambda存储读取并运行模拟算法。所有R代码都将包装在lambda函数中的rpy2中。我之所以进行这种计划是因为我不确定R是否可以直接与S3一起使用。
我现在意识到Lambda本地存储限制为500 MB,并且我怀疑输入和输出文件是否将保持在此限制之内。我现在正在尝试查看R是否可以在Lambda中直接与S3一起使用。如果可以,则不必将文件带到本地lambda存储中,因此不会用完空间。同样,R-S3交互将需要包装在rpy2中。有没有办法做到这一点? R Cloudyr库可以在这种情况下工作吗?尽管我看到了Cloudyr与S3交互的示例,但是在Lambda中使用rpy2却没有看到这种用法的任何示例。
有什么想法吗?