У меня есть следующая конфигурация для 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.





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