在Google

时间:2018-04-11 23:51:21

标签: amazon-web-services ruby-on-rails-3 aws-lambda rake

我们在AWS中使用rails和rake任务。我认为将这些rake任务迁移到lambda运行而不是在rails服务器上运行是有意义的。 如果我们开始利用自动扩展,我不希望在rake任务发送cpu使用情况时最终调整更多实例。有什么想法或方法吗?

1 个答案:

答案 0 :(得分:0)

首先,目前AWS Lambda本身并不支持Ruby on Rails。但是,您仍然可以通过为Lambda环境构建相关的Ruby可执行文件并使用您的代码包含它们来使用Ruby on Rails。

有关详细信息,请参阅Scripting Languages for AWS Lambda: Running PHP, Ruby, and Go

另一方面,我在使用Lambda时看到的好处是你在几秒钟内付费的执行成本(请记住,因为你需要在Lambda中包含Ruby可执行文件,它会增加函数的加载时间在运行rake任务时增加Lambda成本)。此外,您必须确保您的rake任务将在5分钟内运行,这是单个Lambda执行的最长时间限制。

除此之外,您也可以考虑以下方法。

  • 将AWS Fargate与Docker容器一起使用。
  • 使用AWS Lambda函数启动EC2实例,并在完成Rake任务后停止它。