排查 Amazon ECS ResourceInitializationError 错误 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

排查 Amazon ECS ResourceInitializationError 错误

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

无法提取密钥或注册表身份验证:任务无法从 Amazon ECR 提取注册表身份验证

当任务无法拉取任务定义中定义的映像时,将出现此错误。

可能导致此问题的原因如下:

错误原因... 请执行此操作...

Amazon ECR VPC 端点与任务之间的网络连接问题。

在错误消息中看到以下任何字符串时,则说明问题属于网络问题:

  • dial tcp

  • dial udp

  • <ip>:<port>:i/o 超时

  • net/http:TLS 握手超时

  • 读取:连接超时

  • 在等待标头时超出了 Client.Timeout

  • net/http:在等待连接期间请求被取消

  • 信号:已终止

  • 超出上下文截止时间

任务与 Amazon ECR VPC 端点之间的连接:验证 Amazon ECS 已停止任务连接

任务定义中定义的角色不具有 Amazon ECR 的权限。

将所需权限添加到任务执行角色。

该任务会使用以下角色之一:

映像 ARN 不存在

查看映像,然后验证以下方面:

有关查看映像的信息,请参阅《Amazon Elastic Container Registry 用户指南》中的 Viewing image details in Amazon ECR

无法提取密钥或注册表身份验证:无法从 ssm 检索密钥:任务无法从 Systems Manager 中提取密钥“secretName

当任务无法使用 Systems Manager 中的凭证拉取任务定义中定义的映像时,将出现此错误。

可能导致此问题的原因如下:

错误原因... 请执行此操作...

Systems Manager VPC 端点与任务之间的网络连接问题。

在错误消息中看到以下任何字符串时,则说明问题属于网络问题:

  • dial tcp

  • dial udp

  • <ip>:<port>:i/o 超时

  • net/http:TLS 握手超时

  • 读取:连接超时

  • 在等待标头时超出了 Client.Timeout

  • net/http:在等待连接期间请求被取消

  • 信号:已终止

  • 超出上下文截止时间

验证任务与 Systems Manager 端点之间的连接:验证 Amazon ECS 已停止任务连接

任务定义中定义的角色不具有 Systems Manager 的权限。

将所需 Systems Manager 权限添加到任务执行角色。有关更多信息,请参阅 Secrets Manager 或 Systems Manager 权限

密钥 ARN 不存在 检查该 ARN 是否存在。有关更多信息,请参阅《Amazon Systems Manager 用户指南》中的搜索 Systems Manager 参数

无法提取密钥或注册表身份验证:无法从 asm 检索密钥:任务无法从 Secrets Manager 中提取密钥“secretARN

当 Fargate 任务无法使用 Secrets Manager 中的凭证拉取任务定义中定义的映像时,将出现此错误。

可能导致此问题的原因如下:

错误原因... 请执行此操作...

Secrets Manager VPC 端点与任务之间的网络连接问题。

在错误消息中看到以下任何字符串时,则说明问题属于网络问题:

  • dial tcp

  • dial udp

  • <ip>:<port>:i/o 超时

  • net/http:TLS 握手超时

  • 读取:连接超时

  • 在等待标头时超出了 Client.Timeout

  • net/http:在等待连接期间请求被取消

  • 信号:已终止

  • 超出上下文截止时间

验证任务与 Secrets Manager 端点之间的连接。有关更多信息,请参阅 验证 Amazon ECS 已停止任务连接

任务定义中定义的任务执行角色不具有 Secrets Manager 的权限。

将所需 Secrets Manager 权限添加到任务执行角色。有关更多信息,请参阅 Secrets Manager 或 Systems Manager 权限

密钥 ARN 不存在 检查 Secrets Manager 中是否存在该 ARN。有关查看映像的信息,请参阅《Secrets Manager 开发人员指南》中的 Find secrets in Secrets Manager

无法提取密钥或注册表身份验证:任务无法从 Secrets Manager 中提取密钥“secretARN

当任务无法使用 Secrets Manager 中的凭证拉取任务定义中定义的映像时,将出现此错误。

此错误表明 Systems Manager VPC 端点与任务之间的网络连接存在问题。

有关如何验证任务与端点之间的连接的信息,请参阅 验证 Amazon ECS 已停止任务连接

无法下载环境变量文件:任务无法从 Amazon S3 下载环境变量文件

当任务无法从 Amazon S3 下载环境文件时,则会出现此错误。

错误原因... 请执行此操作...

任务与 Amazon S3 之间的网络连接问题。

任务与 Amazon S3 端点之间的连接:验证 Amazon ECS 已停止任务连接

任务定义中定义的角色不具有 Amazon S3 的权限。

向该角色添加 Amazon S3 权限。有关更多信息,请参阅 Amazon S3 存储桶文件存储权限

无法验证日志记录器参数:任务找不到任务定义中定义的 CloudWatch Logs 日志组 group-name。任务与 CloudWatch 之间存在连接问题。

当您的任务无法找到您在任务定义中定义的 CloudWatch 日志组时,将发生此错误。

此错误指示任务定义中的 CloudWatch 组不存在。

您可以使用以下选项之一来修正此问题:

要使用此选项... 请执行此操作...

更新任务定义以在容器定义中包含日志组配置。

有关更新任务定义的信息,请参阅《Amazon Elastic Container Service API 参考》中的 使用控制台更新 Amazon ECS 任务定义RegisterTaskDefinition
在 CloudWatch 中创建日志组
  1. 运行以下命令获取日志组名称。

    aws ecs describe-task-definition \ --task-definition task-def-name | jq -r.taskDefinition.containerDefinitions[].logConfiguration
  2. 创建日志组。有关更多信息,请参阅 Amazon CloudWatch Logs 用户指南中的在 CloudWatch Logs 中创建日志组

无法初始化日志记录驱动程序

当您的任务无法找到您在任务定义中定义的 CloudWatch 日志组时,将发生此错误。

此错误指示任务定义中的 CloudWatch 组不存在。

您可以使用以下选项之一来修正此问题:

要使用此选项... 请执行此操作...

更新任务定义以在容器定义中包含日志组配置。

有关更新任务定义的信息,请参阅《Amazon Elastic Container Service API 参考》中的 使用控制台更新 Amazon ECS 任务定义RegisterTaskDefinition
在 CloudWatch 中创建日志组
  1. 运行以下命令获取日志组名称。

    aws ecs describe-task-definition \ --task-definition task-def-name | jq -r.taskDefinition.containerDefinitions[].logConfiguration
  2. 创建日志组。有关更多信息,请参阅 Amazon CloudWatch Logs 用户指南中的在 CloudWatch Logs 中创建日志组

无法调用 EFS utils 命令来设置 EFS 卷

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

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

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

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

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