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

EC2 启动类型的 Amazon ECS 已停止任务错误代码

以下是当 EC2 任务意外停止时,您可能会收到的可能的错误消息。错误消息由容器代理返回,前缀取决于任务所使用的平台版本。

要使用 Amazon Web Services Management Console 检查已停止的任务是否有错误消息,请参阅 查看 Amazon ECS 已停止任务错误

TaskFailedToStart 错误

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

Unexpected EC2 error while attempting to Create Network Interface with public IP assignment enabled in subnet 'subnet-id': InsufficientFreeAddressesInSubnet

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

可用 IP 地址的数量可在 Amazon EC2 控制台中的子网详细信息页面上找到,也可以使用 describe-subnets 找到。有关更多信息,请参阅《Amazon VPC 用户指南》中的查看您的子网

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

The selected task definition is not compatible with the selected compute strategy

当您所选任务定义的启动类型与集群容量类型不匹配时,将发生此错误。有关更多信息,请参阅 Amazon ECS 启动类型。您需要选择与分配给集群的容量提供程序相匹配的任务定义。

RESOURCE:ENI

当您的集群没有任何可用的弹性网络接口附加点(这是使用 awsvpc 网络模式的任务必需的)时,将发生此错误。Amazon EC2 实例对可以附加到它们的网络接口数量有限制,并且主网络接口算作一个。有关每个实例类型支持的网络接口数量的更多信息,请参阅 Linux Instances的Amazon EC2 用户指南中的每个实例类型的每个网络接口的 IP 地址

RESOURCE:GPU

当任务请求的 GPU 数量不可用且您可能需要将支持 GPU 的容器实例添加到集群时,将发生此错误。有关更多信息,请参阅 在 Amazon ECS 上使用 GPU

AGENT

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

有关如何排除断开连接的代理故障的信息,请参阅如何排除断开连接的 Amazon ECS 代理的故障

LOCATION

当您尝试启动任务的容器实例位于与您在 awsVpcConfiguration 中指定的子网不同的可用区时,将发生此错误。

ATTRIBUTE

当您的任务定义包含一个需要容器实例上未提供的特定容器实例属性参数时,将发生此错误。例如,如果您的任务使用 awsvpc 网络模式,但您指定的子网中没有包含 ecs.capability.task-eni 属性的实例。有关特定任务定义参数和代理配置变量需要哪些属性的更多信息,请参阅任务定义参数Amazon ECS 容器代理配置

MISSING

找不到您尝试启动任务的容器实例时,将发生此错误。检查是否指定了错误的集群或区域,或者容器实例 ARN 或 ID 是否拼写错误。

INACTIVE

当您尝试启动任务的容器实例之前已从 Amazon ECS 注销且无法使用时,将发生此错误。

ResourceInitializationError 错误

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

failed to initialize logging driver: <reason>

当您的任务无法找到您在任务定义中定义的 CloudWatch 日志组时,将发生此错误。有关如何调试和修复此问题的信息,请参阅 Amazon re:Post 上的如何解决 Amazon ECS 中的“ResourceInitializationError:未能验证记录器参数”错误

unable to pull secrets or registry auth: execution resource retrieval failed: unable to get registry auth from asm

Fargate 平台版本 1.4.0 没有从任务运行的 VPC 到 Amazon ECR 存储库或 Secrets Manager 的网络路径。

您可以使用以下任何一种解决方案:

  • 将您的任务启动到具有公有 IP 地址且使用互联网网关的公有子网。此互联网网关允许您的任务与 Amazon ECR 存储库或 Secrets Manager 进行通信。有关更多信息,请参阅 公有子网和互联网网关

  • 在将 VPC 路由表配置为通过公有子网中的 NAT 网关路由出站流量的私有子网中启动任务。有关更多信息,请参阅 私有子网和 NAT 网关

  • 在私有子网中启动任务,并确保在 VPC 中为所需服务(例如 Amazon ECR)配置了 Amazon PrivateLink 端点。有关更多信息,请参阅 Amazon ECS 接口 VPC 端点 (Amazon PrivateLink)

ecr:GetAuthorizationToken

任务必须具有任务执行角色。有关角色的信息,请参阅 Amazon ECS 任务执行 IAM 角色

SpotInterruption 错误

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

SpotInterruption

当没有可用的竞价型实例或 EC2 收回竞价型容量时,将发生此错误。

您可以让实例在多个可用区中运行,以提供更多容量。