在rals中将rake任务迁移到Lambda

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在rals中将rake任务迁移到Lambda相关的知识,希望对你有一定的参考价值。

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

答案

首先,目前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任务后停止它。

以上是关于在rals中将rake任务迁移到Lambda的主要内容,如果未能解决你的问题,请参考以下文章

是否rake db:schema:dump从迁移或数据库本身重新创建schema.rb?

在rails中显示待定迁移

rake db 的 Java EE 替代方案:迁移 [关闭]

Rake 不会回滚迁移,参数数量错误(1 代表 0)

rake db:如果没有版本,迁移不能正常工作

markdown RAKE DB迁移命令