我想对 ECS 集群中失败的 Amazon Elastic Container Service (Amazon ECS) 任务进行故障排除。
您的容器可能会由于映像问题、应用程序问题、资源限制或其他问题而退出。
有关因映像问题导致的任务失败,请参阅当我的任务无法在 Amazon ECS 集群中启动时,如何解决“Image does not exist”(映像不存在)错误?
有关意外停止的 AWS Fargate 任务,请参阅 Amazon ECS 已停止任务错误消息。
要分析导致 ECS 任务无法启动的其他问题,您可以使用 AWSSupport-TroubleshootECSTaskFailedToStart AWS Systems Manager Automation 运行手册。
您也可以手动对 Amazon ECS 集群进行故障排除。
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
在启动 AWSSupport-TroubleshootECSTaskFailedToStart 运行手册之前,请确保您的 IAM 用户或角色拥有所需的权限。有关详细信息,请参阅 AWSSupport-TroubleshootECSTaskFailedToStart 的 Required IAM permissions(所需的 IAM 权限)部分。
要启动运行手册,请完成以下步骤:
检查服务事件日志中的诊断信息。此外,使用 Amazon ECS 控制台或 AWS CLI 检查已停止的任务是否存在错误。
要解决内存限制问题,请参阅如何为 Amazon ECS 中的任务分配内存?
如果您已经配置了日志驱动程序,请在应用程序日志中检查是否存在应用程序问题。例如,如果在任务定义中配置了 awslogs 日志驱动程序,请在 Amazon CloudWatch 中查看 awslogs 容器日志。或者,使用任务定义中的日志配置选项将日志发送到容器支持的日志驱动程序。
Fargate 以外的 ECS 任务
如果您将默认 JSON 文件日志驱动程序与 Amazon Elastic Compute Cloud (Amazon EC2) 启动类型一起使用,请运行以下 Docker 日志命令:
docker logs dc7240fe892a
**注意:**将 dc7240fe892a 替换为您的容器 ID。
前面的命令将检查您的 ECS 容器实例上的容器的 Docker 日志。有关 JSON 日志驱动程序的详细信息,请参阅 Docker 网站上的 JSON 文件日志记录驱动程序。
Fargate 任务
awslogs 日志驱动程序会将这些日志从 Docker 传递到 CloudWatch Logs。这些日志显示来自命令输出的 STDOUT 和 STDERR I/O 流。
AWS Support 自动化工作流程 (SAW)
设置自动化
运行由 Systems Manager Automation 支持的自动化操作