日志驱动程序awslogs选项“ awslogs-group”包含无效字符

时间:2018-11-08 09:29:29

标签: amazon-web-services terraform apex amazon-cloudwatch

我使用terraform和apex对ECS进行以下配置。

resource "aws_ecs_task_definition" "task" {
    ...
      container_definitions = <<DEFINITION
      [
       {
    "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "${aws_cloudwatch_log_group.test_log_group.arn}",
          "awslogs-region": "${var.region}",
          "awslogs-stream-prefix": "/ecs"
        }
      }
    }
   ]
  DEFINITION
  }

和cloudwatch资源配置:

resource "aws_cloudwatch_log_group" "test_log_group" {
  name              = "test_log_group"
  retention_in_days = 30
}

运行apex infra apply时,出现以下错误!尝试使用不同的字符集,是否包含特殊字符等。没有任何效果。希望有人能帮助我:

ClientException: Log driver awslogs option 'awslogs-group' contains invalid characters.

1 个答案:

答案 0 :(得分:1)

awslogs Docker driver使用组 name 作为awslogs-group的值,而不是日志组的ARN。

所以您只想使用以下内容:

resource "aws_ecs_task_definition" "task" {
  # ...
  container_definitions = <<DEFINITION
[
  {
    "logConfiguration": {
      "logDriver": "awslogs",
      "options": {
          "awslogs-group": "${aws_cloudwatch_log_group.test_log_group.name}",
          "awslogs-region": "${var.region}",
          "awslogs-stream-prefix": "/ecs"
      }
    }
  }
]
DEFINITION
}