首页 > 解决方案 > 达到 RUNNING 状态后自毁 AWS ECS 任务

问题描述

我将 ECS 任务设置为 CloudWatch 事件规则的目标,该规则在以下 S3 事件模式上调用。

该规则对 S3 存储桶中的 PUT 操作调用 OK,并启动设置为其目标的 ECS 任务。

任务达到 RUNNING 状态...并保持 RUNNING 状态,直到它停止。我使用 CLI 停止任务。此外,此任务不是 ECS 服务的一部分,而是旨在执行特定任务的独立任务。

有没有办法在任务达到 RUNNING 状态并完成预期工作后自毁任务?我可以等待 30 分钟甚至几个小时……但最终任务需要自行停止。

当有 1000 多个 S3 PUT 操作调用 CloudWatch 规则,进而启动 1000 个任务时,这变得特别难以管理。我正在寻找在它们达到 RUNNING 状态并完成预期工作后以某种方式停止这些任务。

有什么建议么?

将 ECS 任务设置为目标的 Cloud Watch 事件规则

标签: amazon-web-servicesamazon-ecsamazon-cloudwatch

解决方案


如果您真的必须坚持您正在做的事情,那么您应该lambda在作为 docker 容器运行的应用程序中达到某个阶段后调用另一个函数来停止任务。不过要小心集成地狱!

您尝试做的事情应该由AWS Lambda and Batch service. 您可以指定要运行的 docker 映像,一旦操作完成,退出 docker 进程。

请参考: https ://medium.com/swlh/aws-batch-to-process-s3-events-388a77d0d9c2


推荐阅读