【发布时间】:2019-05-11 16:37:25
【问题描述】:
我在 ECS 中定义了一系列按循环计划运行的任务。我最近做了一个小改动来更新我在 Terraform 中的任务定义以更改我的容器的默认环境变量(从 DEBUG 到 PRODUCTION):
"environment": [
{"name": "ENVIRONMENT", "value": "PRODUCTION"}
]
我使用 Fargate 的 Scheduled Tasks 功能运行此任务,并将其设置为每 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 提取最新的活动任务定义?
【问题讨论】:
-
你找到解决办法了吗?
-
@MatheusIanzer 不,我没有
标签: amazon-web-services amazon-ecs