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

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

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

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

TaskFailed 启动错误

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

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

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

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

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

InternalError: <reason>

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

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

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

ResourceInitialization 错误

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

failed to initialize logging driver: <reason>

当您的 Fargate 任务无法找到您在任务定义中定义的 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)

failed to invoke EFS utils commands to set up EFS volumes: stderr

以下问题可能会阻止您在 Fargate 任务中挂载 Amazon EFS 卷:

  • Amazon EFS 文件系统配置不正确。

  • 该任务没有所需的权限。

  • 存在与网络和 VPC 配置有关的问题。

有关如何调试和修复此问题的信息,请参阅 Amazon re:Post 上的为什么我无法在 Amazon Fargate 任务上挂载 Amazon EFS 卷

ecr:GetAuthorizationToken

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

SpotInterruption 错误

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

SpotInterruption

没有 Fargate Spot 容量或 Fargate 收回 Spot 容量时,将发生此错误。

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

InternalError 错误

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

InternalError

当代理遇到意外的非运行时相关的内部错误时,将发生此错误。

仅当使用平台版本 1.4 或更高版本时才会发生此错误。

有关如何调试和修复此问题的信息,请参阅 Amazon re:Post 上的 How do I troubleshoot an Amazon ECS task that failed to start in an ECS cluster

ContainerRuntimeTimeoutError 错误

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

Could not transition to running; timed out after waiting 1m: <reason>
DockerTimeoutError(Linux 平台版本 1.3.0 或更早版本)

当容器无法在超时时间内转换到 RUNNINGSTOPPED 状态时,会发生此错误。错误消息中将提供原因和超时值。

CannotStartContainerError 错误

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

failed to get container status: <reason>

容器无法启动时,将发生此错误。

CannotStopContainerError 错误

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

CannotStopContainerError

容器无法停止时,将发生此错误。

有关如何调试和修复此问题的信息,请参阅 Amazon re:Post 上的为什么我的 Amazon ECS 任务停止了

CannotInspectContainerError 错误

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

CannotInspectContainerError

当容器代理无法通过容器运行时描述容器时,将发生此错误。

当使用平台版本 1.3 或更早版本时,Amazon ECS 代理会从 Docker 返回原因。

当使用平台版本 1.4.0 或更高版本(Linux)或者 1.0.0 或更高版本(Windows)时,Fargate 代理从 containerd 返回原因。

有关如何调试和修复此问题的信息,请参阅 Amazon re:Post 上的为什么我的 Amazon ECS 任务停止了

CannotCreateVolumeError 错误

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

CannotCreateVolumeError

当代理无法创建任务定义中指定的卷挂载时,将发生此错误。

仅当使用平台版本 1.4.0 或更高版本(Linux)或者 1.0.0 或更高版本(Windows)时才会发生此错误。

有关如何调试和修复此问题的信息,请参阅 Amazon re:Post 上的为什么我的 Amazon ECS 任务停止了

ContainerRuntimeError 错误

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

ContainerRuntimeError

当代理收到来自 containerd 运行时特定操作的意外错误时,将发生此错误。此错误通常是由代理或 containerd 运行时的内部故障所导致。

仅当使用平台版本 1.4.0 或更高版本(Linux)或者 1.0.0 或更高版本(Windows)时才会发生此错误。

有关如何调试和修复此问题的信息,请参阅 Amazon re:Post 上的为什么我的 Amazon ECS 任务停止了

OutOfMemoryError 错误

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

container killed due to memory usage

当容器由于容器中的进程使用的内存超过任务定义中分配的内存而退出时,将发生此错误。