Как и почему AWSLOG на ECS (fargate)

Я изо всех сил пытаюсь запустить задачу с помощью ECS Fargate и запустить (ecs.runTask) из сценария AWS SDK (JS / Node).

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

    logConfiguration: {
        logDriver: 'awslogs',
        options: {
            "awslogs-region": 'us-west-2',
            "awslogs-group": 'myTask',
            "awslogs-stream-prefix": "myTask",
            "awslogs-create-group": "true"
        }
    }

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

  • Если я указываю awslogs-create-group как «true» (для этого требуется строка, а не логическое значение, что странно; я предполагаю, что регистр не имеет значения), я тем не менее обнаруживаю, что группа не создается.
  • Если я создаю группу вручную, я обнаруживаю, что поток журнала не создается.

Я подозреваю, что в моих разрешениях может быть ошибка, хотя, конечно, нет сообщений об ошибках для подтверждения. Документы (здесь) указывают, что мне нужно прикрепить определенные политик в ecsInstanceRole, который, кажется, замещает роль, которая используется где-то в процессе.

Но я прикрепил такую ​​политику к моей роли выполнения ECS, к роли, которая выполняет мой вызов API к runTask, и я искал любую другую роль, которая могла бы быть задействована (фактическая «instanceRole», похоже, не существует в Задаче Def), и мою ситуацию ничто не улучшает.

Я был бы рад предоставить больше информации, но на данный момент я не уверен, где находится мое слепое пятно.

Кто-нибудь может это увидеть?


person TwainJ    schedule 13.11.2019    source источник
comment
Убедитесь, что в вашей политике выполнения задачи есть журналы: разрешение CreateLogGroup.   -  person Haran    schedule 15.11.2019
comment
Спасибо @Haran, я проверял, и он есть. Я создал настраиваемую политику с этим разрешением, а затем добавил его, а также управляемую AWS, AmazonECSTaskExecutionRolePolicy , у которой есть другие необходимые разрешения (насколько я могу судить), такие как logs:CreateLogStream.   -  person TwainJ    schedule 16.11.2019
comment
Если есть все необходимые разрешения, попробуйте устранить неполадки в других областях. 1) Посмотрите, нет ли проблем с вашим изображением. 2) Перейдите к задаче «Остановлена» и затем проверьте причину сбоя (в Консоли AWS это будет доступно). Могут быть и другие причины сбоя задачи. Игнорируйте, если вы уже выполнили эти шаги.   -  person Haran    schedule 16.11.2019
comment
Спасибо @Haran, ошибки там были менее чем полезными - поэтому я надеялся, что логи заработают. Мне пришлось перейти к другому приоритету, но я вернусь к этому, как только смогу, чтобы продолжить.   -  person TwainJ    schedule 20.11.2019
comment
@TwainJ Я столкнулся с той же проблемой, буду очень признателен, если вы расскажете, как вам удалось решить проблему   -  person Gaurav    schedule 16.07.2020


Ответы (1)


Перейдите к определению своей задачи. Вы должны найти раздел под названием «Роль IAM для выполнения задачи». В описании сказано -

Эта роль требуется для получения образов контейнеров и публикации журналов контейнеров в Amazon CloudWatch.

Для роли, которую вы здесь назначаете, нужна политика типа AmazonECSTaskExecutionRolePolicy (политика, управляемая AWS), а для доверенной организации - ecs-tasks.amazonaws.com.

Кроме того, я думаю, что опция awslogs awslogs-create-group не нужна.

person Soubhik Mondal    schedule 13.11.2019
comment
У меня определена роль исполнения (член определения задачи - executionRoleArn). Это роль, о которой я упоминал, что я назначил политики для этой ссылки (на самом деле это была AmazonECSTaskExecutionRolePolicy). Если мы можем с уверенностью сказать, что это роль, к которой ссылка относится как ecsInstanceRole, то, возможно, мы сможем исключить разрешения как проблему. Однако я не уверен, где еще искать. - person TwainJ; 13.11.2019
comment
Документы для роли выполнения задачи. - person Soubhik Mondal; 13.11.2019
comment
Я думаю, что отдельная роль инстанса ECS вступила бы в игру, если бы не Fargate. здесь. - person Soubhik Mondal; 13.11.2019