AWS ECS: выполнение задач не выполнено Причины: ["ATTRIBUTE"] - PullRequest
0 голосов
/ 24 июня 2018

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

Run tasks failed
Reasons : ["ATTRIBUTE"]

Как и многие другие , меня направили проверить раздел «requireAttributes»моей задачи, где я нашел этот список:

  "requiresAttributes": [
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "ecs.capability.execution-role-ecr-pull"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "ecs.capability.task-eni"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.ecr-auth"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.task-iam-role"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "ecs.capability.execution-role-awslogs"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
    }
  ]

При попытке добавить эти, казалось бы, бесполезные атрибуты к экземплярам моего кластера, я заблокирован.Консоль AWS сообщает, что некоторые префиксы, такие как ecs, нельзя настраивать / добавлять.

Как сопоставить атрибуты, когда платформа не позволяет этого?

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

Amazon ECS - действительно классный продукт, но это отражает некоторую его незрелость.Я на самом деле вошел в ECS из бобовых стеблей, надеясь, что профессиональный набор будет таким же, как обещано для организации контейнеров.Вместо этого у меня есть несколько разумных жалоб после использования в течение 3 часов!

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Я столкнулся с такой же ситуацией, пытаясь запустить докер-контейнер Windows в ECS.

В моем случае определение задачи показало следующие обязательные атрибуты:

enter image description here

Описание экземпляра ECS с помощью aws ecs describe-container-instances --cluster=ClusterName --container-instances arn:<rest of the instance arn> показало, что в них отсутствуют атрибуты ecs.capability.execution-role-awslogs и com.amazonaws.ecs.capability.logging-driver.awslogs.

Решение было задокументировано на https://github.com/aws/amazon-ecs-agent/issues/1395, идолжен был установить переменную окружения ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE на True с помощью команды [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine").После перезапуска службы Amazon ECS я смог развернуть свои задачи.

Поэтому, в зависимости от вашей ситуации, вы можете обнаружить, что вы можете применить какое-то переопределение, чтобы дать экземплярам ECS необходимые им атрибуты.

0 голосов
/ 24 июня 2018

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

Я бы порекомендовал использовать официальный AMI от AWS, поскольку он уже имеет правильную комбинацию версии Docker, версии агента, совместимости операционной системы и правильногоатрибутов.

...