Группа журналов ECS awslogs не создается для задачи - PullRequest
0 голосов
/ 11 июля 2020

Вот часть моего определения задачи:

"logConfiguration": {
      "logDriver": "awslogs",
      "options": {
        "awslogs-group": "/ecs/main-frontend-production-php",
        "awslogs-region": "us-west-1",
        "awslogs-stream-prefix": "ecs",
        "awslogs-create-group": "true"
      }
    },

Если я go просматриваю задачу в консоли aws, он говорит, что драйвер журнала - это awslogs, и как можно скорее «Просмотр журналов в облачных часах» когда я нажимаю на него, я получаю сообщение об ошибке: There was an error getting log events. The specified log group does not exist. и журналов нет.

Вроде в убытке, из этого кажется: https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_awslogs.html, что я делаю это правильно?

Сейчас мои задачи застряли в состоянии «ОЖИДАНИЕ», и у меня нет журналов до go, чтобы выяснить, почему.

Ответы [ 3 ]

0 голосов
/ 12 июля 2020

Возможная причина, вызывающая эту ошибку, поскольку ошибка выглядит так, будто экземпляр контейнера может получить список группы журналов.

  • Убедитесь, что контейнер и группа журналов находятся в одном регионе us-west-1.
  • Убедитесь, что у контейнера есть разрешение на создание группы журналов
  • Чтобы сузить проблему, просто создайте группу журналов /ecs/main-frontend-production-php с помощью aws cli или aws консоли, чтобы вы будете знать фактическую причину, так как это из-за региона или разрешения.
aws logs create-log-group --log-group-name /ecs/main-frontend-production-php --region us-west-1

политика должна выглядеть как

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:*:*:*"
            ]
        }
    ]
}
0 голосов
/ 15 июля 2020

Хорошо, я наконец понял это. Причина, по которой у меня не было журналов облачных наблюдений, заключалась в том, что изображение не получалось из ECR. У меня всегда было впечатление, что «последний» - это какой-то волшебный тег docker. По-видимому, это не так, и мне нужно пометить его последним, чтобы он нашел его.

Я думаю, что журналы облачных наблюдателей работали бы все время, но изображение не могло быть извлечено, поэтому не было никаких журналов для говорить о.

0 голосов
/ 11 июля 2020

Это произойдет из-за недопустимых разрешений на запись в журналы CloudWatch.

Вы должны прикрепить разрешения к используемой вами роли.

Следуйте Использование журналов CloudWatch с экземпляры контейнера документация, если вы не знаете, как это сделать.

...