查看 Amazon ECS 已停止任务错误 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

查看 Amazon ECS 已停止任务错误

如果您在启动任务时遇到问题,则您的任务可能会因应用程序或配置错误而停止。例如,在您运行任务时,该任务显示 PENDING 状态,然后消失。

任务停止后,以下字段可用:

  • stopCode – 此字符串表示已停止任务类别。有效值有:

    • TaskFailedToStart – 任务未能过渡到“正在运行”状态。

    • EssentialContainerExited – 已退出容器进程。

    • UserInitiated – 用户已停止该任务。

    • ServiceSchedulerInitiated – 服务计划程序已停止该任务。

    • SpotInterruption – EC2 竞价型实例已终止或停止。

    • TerminationNotice – 服务计划程序已收到 Fargate 终止通知。

  • stoppedReason – 这提供了可用于解决问题的其他信息。例如,“ResourceInitializationError:无法初始化日志记录驱动程序”。

您可以使用以下任何方法查看已停止任务错误:

  • Amazon ECS 控制台

  • Amazon CLI

  • Amazon ECS API

  • Amazon SDK

  • Amazon CloudWatch Logs

    如果您的任务定义使用 awslogs 日志驱动程序,则只要出现已停止的任务,应用程序日志就会写入 Amazon CloudWatch Logs。已停止任务还会在 Amazon ECS 控制台的日志选项卡上显示。

  • Amazon ECS 还会将任务状态更改事件发送到 Amazon EventBridge。您无法在 EventBridge 中查看事件。但您可以创建规则,将事件发送到其他持久性存储,例如 Amazon CloudWatch Logs。当已停止任务的详细信息在 Amazon ECS 控制台的视图中过期后,您可以使用上述存储来查看该详细信息。有关更多信息,请参阅 Amazon EC2 任务状态更改事件

    有关将 Amazon ECS 事件归档到 Amazon CloudWatch Logs 的示例 EventBridge 配置,请参见 GitHub 网站上的 ECS Stopped Tasks in CloudWatch Logs(CloudWatch Logs 中的 ECS 已停止任务)。

如果您的任务由 Amazon ECS 服务创建,则 Amazon ECS 为维护该服务而采取的操作将在服务事件中发布。您可以在 Amazon Web Services Management Console、Amazon CLI、Amazon 软件开发工具包、Amazon ECS API 或使用软件开发工具包和 API 的工具中查看事件。这些事件包括 Amazon ECS 停止和替换任务,因为任务中的容器已停止运行,或者 Elastic Load Balancing 的运行状况检查过多失败。

如果您的任务在 Amazon EC2 或外部计算机的容器实例上运行,您还可以查看容器运行时和 Amazon ECS 代理的日志。这些日志位于主机 Amazon EC2 实例或外部计算机上。有关更多信息,请参阅 Amazon ECS 日志文件位置

查看已停止任务错误

Console
Amazon Web Services Management Console

以下步骤可用于使用新 Amazon Web Services Management Console 检查已停止任务的错误。

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择集群

  3. Clusters(集群)页面上,选择集群。

  4. Cluster : name(集群名称:名称)页面上,选择 Tasks(任务)选项卡。

  5. 将筛选器配置为显示已停止的任务。在筛选所需状态中,选择已停止任意所需状态

    已停止选项显示已停止的任务,任意所需状态显示您的所有任务。

  6. 选择要检查的已停止任务。

  7. 在已停止任务所在行的上次状态列中,选择已停止

    弹出窗口显示停止的原因。

Amazon CLI
  1. 列出集群中停止的任务。输出包含您需要对任务进行描述的 Amazon Resource Name (ARN)。

    aws ecs list-tasks \ --cluster cluster_name \ --desired-status STOPPED \ --region us-west-2
  2. 描述已停止的任务检索在响应中的 stoppedReason

    aws ecs describe-tasks \ --cluster cluster_name \ --tasks arn:aws:ecs:us-west-2:account_id:task/cluster_name/task_ID \ --region us-west-2

错误代码资源

以下页面提供了有关错误代码的信息: