如何检测 LifeCycleHook 等 ECS fargate 任务自动缩放事件

How to detect ECS fargate task autoscaling events like LifeCycleHook

我有 ECS 容器 运行 一些任务。任务中的服务器运行可能需要1~10分钟才能完成一个请求。

我正在使用 SQS 进行任务排队。当特定数量的任务超过时,它会扩大 ECS 任务。当队列中的任务低于特定数量时,它会缩小。

但是,由于ECS任务没有LifeCycleHook功能,在缩容期间ECS任务关闭,而处理仍在运行。并且由于缺少LifeCycleHook,无法延迟任务终止。

根据我们的规范,我们不能使用超时功能,因为我们之前不知道完成作业需要多少时间。

请提出解决问题的方法。

这个问题没有通用的解决方案,特别是如果您不想使用超时。事实上,有一个持久的、仍然开放的 github 问题专门针对此问题:

您可以通过 运行 您在 EC2(EC2 扩展保护)而非 Fargate 上的服务以某种方式控制它。因此,要么您必须重新设计您的解决方案,要么手动横向扩展并在您的服务中。