从NodeJS调用AWS Lambda上的R脚本
经过几个小时徒劳的搜索,我发布了这个问题。 我想它是这个的复制品: 但是,由于这个问题的作者似乎没有成功地完成他/她的目标,我将再试一次 我目前拥有的: NodeJS服务器,通过调用R脚本并通过传递数据进行计算 负责此操作的函数如下所示:从NodeJS调用AWS Lambda上的R脚本,r,node.js,amazon-web-services,lambda,rserve,R,Node.js,Amazon Web Services,Lambda,Rserve,经过几个小时徒劳的搜索,我发布了这个问题。 我想它是这个的复制品: 但是,由于这个问题的作者似乎没有成功地完成他/她的目标,我将再试一次 我目前拥有的: NodeJS服务器,通过调用R脚本并通过传递数据进行计算 负责此操作的函数如下所示: const R = (arg1, arg2) => { return new Promise((resolve, reject)=>{ const args = { arg1, arg2
const R = (arg1, arg2) => {
return new Promise((resolve, reject)=>{
const args = {
arg1, arg2
};
//send data to Rserve to evaluate
rio.$e({
filename: path.resolve('./r-scripts/street.R'),
entrypoint: 'run',
data: args,
})
.then((data)=>{
resolve(JSON.parse(data));
})
.catch((err)=>{
reject(`err: ${err}`);
});
});
};
这个很好用。我将数据发送到我的R实例,并将结果返回到我的服务器
我最终想要实现的目标:
每个请求似乎都会产生自己的R工作区,这会带来相当大的内存开销。因此,使用这种方法服务数百个并发请求是不可能的,因为我的AWS EC2很快就会耗尽内存。
因此,我正在寻找一种将所有内存密集型部件部署到AWS Lambda的方法,从而消除内存开销
我想,我的例子中的具体问题是,是否有一种方法可以将R和Rserve与NodeJS lambda函数打包在一起。或者,如果有一种方法让我确信,使用lambda这种方法是行不通的,那么我应该尝试寻找一种替代方法
注意:我不能使用R以外的任何东西,因为这些是外部R脚本,我必须从我的服务器调用它们
提前谢谢