amazon-web-services - 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 调用有什么区别?
解决方案
在没有触发它等待其完成的 lambda 函数的情况下,在按需容器中异步进行?
是的。Lambda 将启动它。
ecs.runTask() 和 ecs.startTask() api 调用有什么区别?
startTask
只能用于 EC2 启动类型,并且需要您明确选择要用于您的任务的 EC2 实例。不能用于 Fargate 并允许您启动单个任务。
runTask
可用于 EC2 和Fargate启动类型。当您使用runTask
ECS 时,会决定将您的任务放置在何处,例如哪个实例。此外,您可以一次运行单个任务的多个副本。
可能还有更多差异,但我认为以上是关键。
推荐阅读
- python - 如何在 Pygame 中重启游戏
- android - 应用内更新不起作用。无法绑定服务错误
- python - 如何在不拆分数据帧的情况下传递不同的数据集进行训练和测试。(Python)?
- angular - 在表单组中设置可选属性
- angularjs - 从父控制器向组件传递参数
- c# - 尝试将字母数字值插入数据库时列名无效
- angular - 在Angular 4+中使用BehaviorSubject在独立组件之间调用方法
- mysql - 有没有一种解决方案可以在一段时间内查找连接 3 个表的 SQL Query 并执行一些操作?
- r - 使用 tidyr 将行中的两列数据转换为 R 中的多列
- java - Java中的 Long.valueOf(0) 和 0L 有什么区别?