将 AWS Lambda rails 代码迁移到 AWS Fargate

migrate AWS Lambda rails code to AWS Fargate

我有一个用 ruby 编写的 AWS Lambda 函数,由于它应该处理(数学)的数据量越来越大,它超时了。由于工作的性质,它会因为非常广泛的数学而超时,并且数学的优化已经过审查 - 它更复杂,而不是像 ruby.[= 中编写的专有库中那样的选项。 11=]

为了避免这种情况,我正在寻找将整个 lambda 代码迁移到 AWS Fargate 的方法,这样它将能够实例化一个任务并让它 运行 长时间(可能大约 30-35 分钟) ).我找不到有关如何将 lambda 代码转换为 aws fargate 部署的指南。

所以我有一个 AWS lambda zip 文件,其中包含 rails lambda 代码、专有 ruby 库和 mysql2 gem 以及原生 *.so 库(结果计算存储在 db 中)。

是否有任何工具或指南可以将此类或类似的 lambda 函数迁移到 Fargate?顺便说一句,据我所知,lambda 是从 SQS 调用的,在 Fargate 的情况下,SQS 将调用 lambda,这将 运行 fargate 任务。但是任务配置和图像和其余部分不清楚。

@sngsnd 感谢您提出问题。 根据定义,

AWS Fargate is a serverless compute engine for containers.

以下步骤可能对您有所帮助。

  1. 将您的 Ruby 代码容器化。
  2. 将图像放入存储库(DockerHub、ECR 等)
  3. 在 ECS 中创建任务定义
  4. 创建ECS集群。
  5. 为运行您的任务创建服务。

本文可能对您有所帮助。 serverless-application-for-long-running-process-fargate-lambda