【问题标题】:How to debug failed fargate task initialization如何调试失败的 Fargate 任务初始化
【发布时间】:2019-06-05 11:27:08
【问题描述】:

我有一个 Fargate 任务,我已计划使用 CloudWatch Event 规则运行该任务,并在成功运行时将时间戳输出到数据库。它还会在每次运行时向 CloudWatch 输出一个日志文件。

但是,有 1 次没有创建日志文件,也没有更新数据库。我怀疑该任务甚至从未开始,或者未能开始。

在 CloudWatch 中,事件规则在我预期任务运行时显示触发器和调用,因此我假设任务至少尝试启动。

我的问题是:有什么方法可以调试或记录有关集群无法启动任务的信息?

如果我需要提供更多信息,请告诉我。

编辑:我应该指定我正在寻找一种在某处的日志文件中读取此信息的方法。我知道我可以在 Web 控制台中看到失败的任务原因,但这仅适用于相对较新的任务。

我在这里发布了同样的问题:https://www.reddit.com/r/aws/comments/adtqvt/debugging_failed_fargate_task_initialization/ 和 StackOverflow:https://forums.aws.amazon.com/thread.jspa?messageID=884638&#884638

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch amazon-ecs aws-fargate


    【解决方案1】:

    尝试进入“CloudWatch -> Logs -> Insights”并点击“Run Query”:

    【讨论】:

      【解决方案2】:
      1. 转到集群并选择Tasks 选项卡
      2. 在下部窗格中,选择 Stopped 作为 Desired Task Status
      3. 找到所需的Task 并单击它的 GUID
      4. 向下滚动到Containers 部分并展开出现错误的相关容器

      您会看到错误的某种状态原因。在我的情况下是:

      CannotStartContainerError: API error (500): failed to initialize logging driver: Cannot determine region for awslogs driver
      

      编辑:我真的不能因为弄清楚这一点而受到赞扬 - 在这里找到它:

      https://github.com/aws/amazon-ecs-agent/issues/1654#issuecomment-437178282

      【讨论】:

      • 感谢您的建议,但不幸的是,这会不定期发生,并且当它没有发生时我不会收到通知,所以我从来没有机会看到任务本身。所以我正在寻找某种元数据来显示任务的集群管理。就像显示“集群从事件规则收到任务”等的日志文件,以查看链中断的位置
      【解决方案3】:

      我刚刚遇到了这个问题,但缺少日志确实很难解决。

      我的问题是用于该任务的安全组已被删除。如果有人遇到类似问题,希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-07
        • 1970-01-01
        • 1970-01-01
        • 2022-09-27
        • 2018-07-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多