У меня есть ряд заданий, определенных в ECS, которые выполняются по регулярному расписанию.Недавно я внес небольшое изменение, чтобы обновить определение моей задачи в Terraform, чтобы изменить переменные среды по умолчанию для моего контейнера (с DEBUG
на PRODUCTION
):
"environment": [
{"name": "ENVIRONMENT", "value": "PRODUCTION"}
]
У меня была эта задача, запущенная с использованием Scheduled Tasks
особенность Fargate, настройка его по ставке каждые 4 часа.Однако после обновления определения задачи я начал понимать, что CloudWatch не запускал задачи, поскольку мой последний журнал контейнеров был за несколько дней назад.
Я углубился в проблему с помощью CloudTrail и заметилодна конкретная часть записи для события RunTask
:
"eventTime": "2018-12-10T17:26:46Z",
"eventSource": "ecs.amazonaws.com",
"eventName": "RunTask",
"awsRegion": "us-east-1",
"sourceIPAddress": "events.amazonaws.com",
"userAgent": "events.amazonaws.com",
"errorCode": "InvalidParameterException",
"errorMessage": "TaskDefinition is inactive",
Далее в журнале я заметил, что определение задачи, которое пытался запустить ECS, было
"taskDefinition": "arn:aws:ecs:us-east-1:XXXXX:task-
definition/important-task-name:2",
ОднакоВ моих определениях задач ECS последняя версия important-task-name
была 3. Таким образом, похоже, что события не инициируются, потому что я использую «неактивную» версию определения моей задачи.
Есть ли способдля меня запланировать задачи в AWS Fargate без необходимости вручную проходить через консоль и останавливать / перезапускать / обновлять запланированное обновление каждого кластера?Нет ли способа просто попросить CloudWatch получить последнее определение активной задачи?