Самоуничтожение AWS задач ECS после достижения состояния RUNNING - PullRequest
0 голосов
/ 21 января 2020

У меня задание ECS установлено в качестве цели в правиле событий CloudWatch, которое вызывается по приведенному ниже шаблону событий S3.

Правило вызывает OK для операции PUT в сегменте S3 и запускает задачу ECS, которая установлена ​​в качестве ее цели.

Задача достигает состояния RUNNING ... и остается в состоянии RUNNING, пока не будет остановлена. Я использую CLI, чтобы остановить задачу. Кроме того, эта задача не является частью службы ECS, а представляет собой отдельную задачу, предназначенную для выполнения конкретной задачи c.

Есть ли способ самоуничтожения Задачи после того, как она достигает состояния ЗАПУСК и выполняет запланированную работу? Я мог бы подождать 30 минут или даже несколько часов ... но в конечном итоге задачи должны ОСТАНОВИТЬСЯ самостоятельно.

Это становится особенно трудным для управления, когда существуют тысячи операций S3 PUT, которые вызывают правило CloudWatch, которое, в свою очередь, запускает тысячи задач. Я ищу как-нибудь остановить эти задачи после того, как они достигнут состояния RUNNING и завершат sh намеченную работу.

Любые предложения?

Cloud Watch Event Rule that has teh ECS Task set as a target

1 Ответ

1 голос
/ 22 января 2020

Если вам действительно нужно придерживаться того, что вы делаете, то вам нужно вызвать другую функцию lambda, чтобы остановить задачу, как только в вашем приложении достигнут определенный этап, выполняющийся как контейнер docker. Остерегайтесь адской интеграции, хотя!

То, что вы пытаетесь сделать, должно быть лучше обработано AWS Lambda and Batch service. Вы можете указать образ docker для запуска и после завершения операции выйти из процесса docker.

См. Это: https://medium.com/swlh/aws-batch-to-process-s3-events-388a77d0d9c2

...