Параметр awslogs драйвера журнала «awslogs-group» содержит недопустимые символы - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть следующий конфиг для ECS с использованием terraform и apex.

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 голосов
/ 08 ноября 2018

Драйвер Docker awslogs принимает для группы имя значение 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
}
...