排查 Amazon ECS ResourceInitializationError 错误 - Amazon Elastic Container Service

排查 Amazon ECS ResourceInitializationError 错误

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

任务无法从 Amazon ECR 提取注册表身份验证。任务与 Amazon ECR 之间存在连接问题。请检查任务网络配置。

此错误表明任务无法连接到 Amazon ECR。

检查任务与 Amazon ECR 之间的连接。有关信息,请参阅验证 Amazon ECS 已停止任务连接

任务无法从 Amazon S3 下载环境变量文件。任务与 Amazon S3 之间存在连接问题。请检查任务网络配置。

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

检查任务与 Amazon S3 VPC 端点之间的连接。有关信息,请参阅验证 Amazon ECS 已停止任务连接

任务无法从 AWS Systems Manager Parameter Store 中提取密钥。检查任务与 AWS Systems Manager 之间的网络连接。

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

检查任务与 Systems Manager VPC 端点之间的连接。有关信息,请参阅验证 Amazon ECS 已停止任务连接

任务无法从 AWS Secrets Manager 中提取密钥。任务与 Secrets Manager 之间存在连接问题。请检查任务网络配置。

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

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

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

任务无法从 Secrets Manager 中提取密钥。任务无法从 Secrets Manager 中检索到 ARN 为“secretARN”的密钥。请检查指定区域中是否存在该密钥。

当任务无法使用 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

pull command failed: unable to pull secrets or registry auth Check your task network configuration.

当任务无法连接到 Amazon ECR、Systems Manager 或 Secrets Manager 时,会出现此错误。这是由于网络配置错误造成的。

要修复此问题,请验证任务与 Amazon ECR 之间的连接。您还需要在任务和存储密钥的服务(Systems Manager 或 Secrets Manager)之间建立连接。有关更多信息,请参阅 验证 Amazon ECS 已停止任务连接

任务无法找到任务定义中定义的 Amazon CloudWatch 日志组。任务与 Amazon CloudWatch 之间存在连接问题。请检查网络配置。

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

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

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

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

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

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

使用以下步骤查找缺失的 CloudWatch。

  1. 运行以下命令,获取任务定义信息。

    aws ecs describe-task-definition \ --task-definition task-def-name

    查看每个容器的输出并记下其 awslogs-group 值。

    "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/example-group", "awslogs-create-group": "true", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" },
  2. 验证组在 CloudWatch 中存在。有关更多信息,请参阅《Amazon CloudWatch Logs User Guide》中的 Working with log groups and log streams

    问题可能是任务定义中指定的组不正确,或者日志组不存在。

  3. 修复问题。

    问题是… 请执行此操作...

    任务定义中指定的日志组不正确。

    更新任务定义,将日志组配置包含在容器定义中。有关更新任务定义的信息,请参阅《Amazon Elastic Container Service API Reference》中的使用控制台更新 Amazon ECS 任务定义,或 RegisterTaskDefinition
    日志组在 CloudWatch 中不存在 创建日志组。有关更多信息,请参阅 Amazon CloudWatch Logs 用户指南中的在 CloudWatch Logs 中创建日志组

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

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

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

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

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

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