我们在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执行的最长时间限制。
除此之外,您也可以考虑以下方法。