viv*_*vek 8 amazon-web-services aws-lambda
我的 Lambda 函数有 15 分钟的限制,这是 5 分钟更早。Lambda 进程在 15 分钟后自动终止,但我的进程需要超过 15 分钟。我怎么办?
Rya*_*ies 25
通常使用 Fat Lambda 策略或 Step Function
胖拉姆达策略
当您的任务很单一但运行时间很长和/或您有很高的硬件要求时,可以使用 Fat Lambda 策略。这个想法是,您将创建一个执行长流程的脚本,并将其放入 Fargate 中托管的 docker 容器中。这意味着执行时间和对强大硬件的访问没有限制(如何创建 Fat Lambda https://youtu.be/XUp9SHIHU8w)
阶跃函数策略
Step Function 策略用于将整个过程分解 为更小的步骤。通常,如果您的流程可以将许多微型阶段连接在一起,而不是尝试同时完成所有工作,那么阶梯函数策略将适合您。请记住,“Fat Lambda”也可以由 Step Function 触发(如何创建 Step Function https://www.youtube.com/watch?v=s0XFX3WHg0w)
另外,请注意,记住 lambda 表达式还可以触发其他 lambda 表达式。因此,您甚至可以让不同的 lambda 运行您的 lambda 代码。例如,FOR 循环发送大量迷你 lambda 来运行小任务。您甚至可能不需要 Step Function 或 Fat Lambda。
如果您不知道如何选择,请按照以下步骤操作。它将帮助您解决问题。
单一 Lambda >> Lambda 调用另一个 Lambda?>> 步骤功能?>> Fargate(胖Lambda)?
没有办法解决这个问题。如果您正在进行某种长时间运行的处理,那么您的另一个选择可能是在 EC2 实例上运行此任务。如果这个长时间运行的过程可以分解为多个步骤,那么您可以查看 Lambda Step Functions。
15 分钟是最大值,这个最大值不能延长。
编辑:
最近我开始运行一些长度可变的长时间运行的任务(从几分钟到几个小时不等)。为了实现这一点,我一直在使用 AWS Fargate,我的任务是在 ECR 中存储为 Docker 容器的 node.js 脚本。这样做相当容易,也相当便宜(我认为我们在一个月内每天花费 1 美元多一点来运行这项任务)。对于可能遇到此答案的其他人来说,这可能值得研究。
https://docs.aws.amazon.com/AmazonECS/latest/userguide/scheduled_tasks.html
| 归档时间: |
|
| 查看次数: |
2993 次 |
| 最近记录: |