是否可能有一个 AWS Fargate 任务在其中一个容器退出时不会终止?

Is it possible to have an AWS Fargate task that doesn't terminate when one of it's container exits?

我有一个 AWS Fargate 任务,每个容器有两个容器,运行它是批处理作业的一部分。但是,当其中一个容器完成并退出时,整个任务将被 ECS 终止。是否可以让任务 运行 直到两个容器都退出?

虽然它可能是反模式,但容器可以运行彼此独立。它们只使用很少的内存,但由于依赖外部 API 调用,所以很长 运行ning(~1 小时),所以我希望在 512Mb 任务中塞入多个,因为我可以'不要让任务使用更少的内存。所以这完全是出于节省成本的角度,而不是出于任何技术要求。如果我必须将这些分解成单独的任务,那是可以接受的,但我想确保在我走那条路之前没有其他方法。

如果任何标记为 essential 的容器退出,Amazon ECS 将终止任务。您可以有一个包含多个容器的任务定义,其中一些容器未标记为 essential,但每个任务中至少有一个容器必须标记为 essential。有关详细信息,请参阅 the documentation

你也可以用这个去另一个方向。假设您想要 运行 一个 运行 然后终止的 ECS 任务(例如,如果您只是想让一个容器部署一些东西然后死掉),并且您不关心它是否死于藤蔓。

您可以直接将任务部署到您的 ECS 集群,而不是通过服务部署此任务,当它完成时,它会按预期终止,无需担心任务被重新实例化。