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

检查已停止的任务是否存在错误

如果您在启动任务时遇到问题,则您的任务可能会因错误而停止。例如,在您运行任务时,该任务显示 PENDING 状态,然后消失。您可以在 Amazon ECS 控制台中通过查看已停止的任务并检查其错误消息来查看已停止的任务错误。

重要

Amazon ECS 还会向 EventBridge 发送任务状态更改事件,您可以在 Amazon ECS 控制台的视图中查看已停止的任务是否已过期。有关更多信息,请参阅任务状态更改事件

有关如何调查停止超过 1 小时的任务的信息,请参阅 GitHub 网站上的 CloudWatch Logs 中停止 ECS 任务

New console

新的 Amazon Web Services Management Console

可以通过以下步骤使用新的 Amazon Web Services Management Console 将容器实例设置为耗尽。

  1. 打开位于 https://console.aws.amazon.com/ecs/ 的 Amazon ECS 控制台。

  2. 在导航窗格中,选择 Clusters

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

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

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

  6. Status(状态)部分中,检查停止原因字段以查看导致任务停止的原因。

Classic console
  1. 打开 https://console.aws.amazon.com/ecs/ 上的 Amazon ECS 控制台。

  2. 集群 页面上,选择已停止的任务所在的集群。

  3. Cluster : clustername (集群: <集群名称>) 页面上,选择 Tasks (任务)

  4. Desired task status (预期任务状态) 表标题中,选择 Stopped (已停止),然后选择要检查的已停止任务。首先列出最近停止的任务。

  5. 详细信息部分中,检查停止原因字段以查看导致任务停止的原因。

    
                                    停止任务的原因

    下面列出了一些可能的原因及它们的解释:

    Task failed ELB health checks in (elb elb-name)

    当前任务未通过针对与任务的服务关联的负载均衡器的 Elastic Load Balancing 运行状况检查。有关更多信息,请参阅服务负载均衡器问题排查

    Scaling activity initiated by (deployment deployment-id)

    当您减少稳定服务的预期数量时,必须停止一些任务才能达到预期数量。通过缩小服务规模停止的任务具有此停止原因。

    Host EC2 (instance id) stopped/terminated

    如果您停止或终止一个具有正在运行的任务的容器实例,这些任务将获得此停止原因。

    Container instance deregistration forced by user

    如果您强制取消注册一个具有正在运行的任务的容器实例,这些任务将获得此停止原因。

    Essential container in task exited

    如果任务定义中标记为 essential 的容器退出或发生故障,则将导致任务停止。如果主要容器退出是导致任务停止的原因,则 步骤 6 会提供有关导致容器停止的原因的更多诊断信息。

  6. 如果您有一个已停止的容器,请展开该容器并检查 Status reason 行,以查看导致任务状态发生更改的原因。

    
                                    已停止的容器错误

    在上一个示例中,找不到容器映像名称。如果您拼错了映像名称,则会发生此情况。

    如果此检查提供的信息不足,您可以使用 SSH 连接到容器实例并在本地检查 Docker 容器。有关更多信息,请参阅检查 Docker 容器

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

其他资源

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