首页 > 解决方案 > AWS Lambda 调用 Fargate 任务

问题描述

我是 AWS 新手,正在尝试使用 AWS Lambda 和 Fargate。我有一个长期运行的流程,我将其定义为 AWS Fargate 容器化任务。ecs.runTask(taskParams, callback)此任务是使用来自 AWS Lambda 函数的 api 调用触发的。Lambda 函数由上传到 S3 存储桶的文件的通知触发。

您现在可以将 AWS Lambda 函数配置为每次执行最多运行 15 分钟。以前,Lambda 函数的最长执行时间(超时)为 5 分钟。(来源:亚马逊

我的问题是,是否ecs.runTask()在按需容器中异步运行任务而没有触发它等待其完成的 lambda 函数?这是否解释了 lambda 函数如何不再受任务运行时间的约束?对于我们不想要 ECS 实例的长时间运行的进程,这是推荐的方法吗?

ecs.runTask()最后,和ecs.startTask()api 调用有什么区别?

标签: amazon-web-servicesaws-lambdaamazon-ecsaws-fargate

解决方案


在没有触发它等待其完成的 lambda 函数的情况下,在按需容器中异步进行?

是的。Lambda 将启动它。

ecs.runTask() 和 ecs.startTask() api 调用有什么区别?

startTask只能用于 EC2 启动类型,并且需要您明确选择要用于您的任务的 EC2 实例。不能用于 Fargate 并允许您启动单个任务。

runTask可用于 EC2 和Fargate启动类型。当您使用runTaskECS 时,会决定将您的任务放置在何处,例如哪个实例。此外,您可以一次运行单个任务的多个副本。

可能还有更多差异,但我认为以上是关键。


推荐阅读