Как я могу получить статус задачи на основе ее имени контейнера из AWS ECS? - PullRequest
0 голосов
/ 22 октября 2019

У меня есть задание на AWS ECS Fargate. Мне нужно периодически запускать его (скажем, каждые 40 минут) из лямбды. Само задание выполняется 30 минут. Задача выполняется в кластере, а не в службе.

И я не хочу запускать задачу, если запущена существующая задача. Таким образом, в лямбде необходимо проверить, есть ли одно и то же запущенное задание.

Для этого мне нужно будет найти задачу по имени контейнера. Я посмотрел на boto3 API библиотеки https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html. У него есть некоторые API, такие как describe_tasks и list_tasks. Но они не принимают имя контейнера.

Что я могу сделать, это:

 - list all running tasks in a cluster by calling `list_tasks` API. It gives me all running tasks' ARN. 
 - Then I have to call `describe_tasks` by iterating these ARN and search the response to see whether there is one matches the container name.

Это работает, но я ищу более простое решение. Есть ли способ сделать один вызов API? И так как моя задача не работает ни под каким сервисом. Есть ли способ запроса задач, которые не имеют никаких служб?

...