如何解决 Amazon ECS 中的“ResourceInitializationError: failed to validate logger args”(ResourceInitializationError:未能验证记录器参数)错误?

上次更新日期:2022 年 7 月 22 日

在 Amazon Elastic Container Service(Amazon ECS)中运行任务时,我收到以下错误:“ResourceInitializationError: failed to validate logger args: create stream has been retried 1 times: failed to create Cloudwatch log stream: ResourceNotFoundException: The specified log group does not exist. : exit status 1”(ResourceInitializationError:未能验证记录器参数:创建流已重试 1 次:未能创建 Cloudwatch 日志流:ResourceNotFoundException:指定的日志组不存在。: 退出状态 1)。如何解决此错误?

简短描述

当 Amazon ECS 任务找不到任务定义中定义的 Amazon CloudWatch 日志组时,Amazon ECS 会返回 ResourceInitialization 错误。要解决此错误,请为任务创建新的日志组。

解决方法

要解决 ResourceInitialization 错误,请选择以下其中一个解决方法为任务创建新的日志组。

在控制台中创建 CloudWatch 日志组

  1. 打开 CloudWatch 控制台
  2. 从导航栏中选择 Amazon ECS 集群所在的区域
  3. 在左侧导航窗格中,选择 Logs(日志),然后选择 Log groups(日志组)。
  4. Log groups(日志组)窗口中,选择 Create log group(创建日志组)。

使用 AWS CLI 创建 CloudWatch 日志组

使用 create-log-group AWS 命令行界面(AWS CLI)命令创建 CloudWatch 日志组。以下示例命令创建名为 mylogs 的日志组:

注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

aws logs create-log-group --log-group-name mylogs

使用 Amazon ECS 中的自动配置功能

Amazon ECS 控制台中的自动配置选项使用以 ecs 作为前缀的任务定义系列名称代表您创建日志组。以下示例在 Task Definition(任务定义)中指定 Log Configuration(日志配置)。

{
  "containerDefinitions": [
    {
      "logConfiguration": {
        "logDriver": "awslogs",
         "options": {
           "awslogs-group": "/ecs/task_definition_familyname ",
           "awslogs-region": "eu-west-1",
           "awslogs-stream-prefix": "ecs"
    }
  }
}

您还可以通过指定日志配置选项并添加值为 true 的密钥 awslogs-create-group 来代表您创建日志组,从而创建自定义日志组。

以下示例使用选项集在 Task Definition(任务定义)中指定 Log Configuration(日志配置)。

{
  "containerDefinitions": [
    {
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "example_container",
          "awslogs-region": "eu-west-1",
          "awslogs-create-group": "true",
          "awslogs-stream-prefix": "example"
    }
  }
}

注意:托管式 AWS Identity and Access Management(IAM)策略 AmazonECSTaskExecutionRolePolicy 不包含 logs:CreateLogGroup 权限。要使用 awslogs-create-group 选项,请添加 logs:CreateLogGroup 作为内联 IAM 策略。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?