【发布时间】:2018-04-11 23:51:21
【问题描述】:
我们在 AWS 中将 rails 用于 rake 任务。我认为迁移这些 rake 任务以在 lambda 中运行而不是在 rails 服务器上运行它是有意义的。 如果我们开始利用自动缩放,如果 rake 任务导致 CPU 使用率上升,我不希望最终启动更多实例。对此有何想法或方法?
【问题讨论】:
标签: amazon-web-services ruby-on-rails-3 aws-lambda rake
我们在 AWS 中将 rails 用于 rake 任务。我认为迁移这些 rake 任务以在 lambda 中运行而不是在 rails 服务器上运行它是有意义的。 如果我们开始利用自动缩放,如果 rake 任务导致 CPU 使用率上升,我不希望最终启动更多实例。对此有何想法或方法?
【问题讨论】:
标签: amazon-web-services ruby-on-rails-3 aws-lambda rake
首先,目前 AWS Lambda 本身并不支持 Ruby on Rails。但是,您仍然可以通过为 Lambda 环境构建相关的 Ruby 可执行文件并将它们包含在您的代码中来准备相关的 Ruby 可执行文件,从而使用 Ruby on Rails。
有关执行此操作的更多详细信息,请参阅Scripting Languages for AWS Lambda: Running PHP, Ruby, and Go。
另一方面,我在使用 Lambda 时看到的好处是执行成本需要按秒支付(请记住,由于您需要在 Lambda 中包含 Ruby 可执行文件,它会增加函数的加载时间运行 rake 任务时会增加 Lambda 成本)。此外,您必须确保您的 rake 任务将在 5 分钟内运行,这是单次 Lambda 执行的最长时间限制。
除此之外,您还可以考虑以下方法。
【讨论】: