【问题标题】:migrate AWS Lambda rails code to AWS Fargate将 AWS Lambda rails 代码迁移到 AWS Fargate
【发布时间】:2021-01-06 09:07:41
【问题描述】:

我有用 ruby​​ 编写的 AWS Lambda 函数,由于数据量越来越大,它应该处理(数学)它超时。由于工作的性质,由于非常广泛的数学和数学优化而超时 - 它更加复杂,而不是位于用 ruby​​ 编写的专有库中的选项。

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

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

是否有任何工具或指南如何将此类或类似的 lambda 函数迁移到 fargate?顺便说一句,据我所知,在 Fargate SQS 将调用将运行 Fargate 任务的 lambda 时,从 SQS 调用 lambda。但是任务配置和图片和休息都不清楚。

【问题讨论】:

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


    【解决方案1】:

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

    AWS Fargate 是用于容器的无服务器计算引擎。

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

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

    这篇文章可能会对您有所帮助。 serverless-application-for-long-running-process-fargate-lambda

    【讨论】:

    • 谢谢您,@Hasmukh Rathod 您回答的第一点正好涵盖了一个尚未解决的问题:如何为我的 RoR lambda 部署包创建一个容器? 我知道有 lambda 环境的 docker 映像,包括 RoR env - 实际上我使用这样的映像构建 mysql2 本机库。但是如何将我的 RoR 包部署到这样的图像上以及如何调用我的代码?任何路由/配置示例?同样,如果它只是一个普通的 ror 应用程序,我不会问这个,但 lambda 不是,这就是为什么我仍然感到困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2017-07-05
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多