

# 排查 Amazon ECS TaskFailedToStart 错误
<a name="failed-to-start-error"></a>

以下是一些 `TaskFailedToStart` 错误消息和可以用来修复错误的操作。

要使用 AWS 管理控制台 检查已停止的任务是否有错误消息，请参阅 [查看 Amazon ECS 已停止任务错误](stopped-task-errors.md)。

## 尝试在子网“*subnet-id*”中创建启用了公有 IP 分配的网络接口时意外出现 EC2 错误
<a name="subnet-error"></a>

当 Fargate 任务使用 `awsvpc` 网络模式并在具有公有 IP 地址的子网中运行，且该子网没有足够的 IP 地址时，就会发生这种情况。

可用 IP 地址的数量可在 Amazon EC2 控制台中的子网详细信息页面上找到，也可以使用 `[describe-subnets](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-subnets.html)` 找到。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[查看您的子网](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#view-subnet)。

要解决此问题，您可以创建一个新的子网，在其中运行您的任务。

## InternalError：*<reason>*
<a name="internal-error-reason"></a>

当请求 ENI 连接时会出现此错误。Amazon EC2 会异步处理 ENI 的配置。配置过程需要时间。如果等待时间长或出现未报告的故障，则 Amazon ECS 会超时。存在 ENI 已配置，但故障超时后报告发送至 Amazon ECS 的情况。在这种情况下，Amazon ECS 会出现报告的任务故障，并带有使用中的 ENI。

## 选定的任务定义与选定的计算策略不兼容
<a name="compute-compatibility"></a>

当您所选任务定义的启动类型与集群容量类型不匹配时，将发生此错误。您需要选择与分配给集群的容量提供程序相匹配的任务定义。

## 无法将网络接口连接到未使用的设备索引
<a name="compute-compatibility-cpu"></a>

使用 `awsvpc` 联网类型并且没有足够的 CPU/内存来执行任务时，就会发生此错误。首先，请检查用于实例的 CPU。有关更多信息，请参阅《Amazon EC2 实例类型》中的 [Amazon EC2 instance type specifications](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html)**。获取实例的 CPU 值并将其乘以实例的 ENI 数量。在任务定义中使用该值。

## AGENT
<a name="agent-not-started"></a>

您尝试在其上启动任务的容器实例有一个目前已断开连接的代理。为防止任务放置的等待时间延长，已拒绝该请求。

有关如何排除断开连接的代理故障的信息，请参阅[如何排除断开连接的 Amazon ECS 代理的故障](https://repost.aws/knowledge-center/ecs-agent-disconnected-linux2-ami)。