При создании задачи ECS с использованием terraform отсутствуют необходимые атрибуты для извлечения изображения из ECR

#amazon-web-services #terraform #containers #amazon-ecs #terraform-provider-aws

Вопрос:

Когда я пытаюсь создать задачу AWS ECS с помощью terraform ecs_task_definition, задача создается успешно, но в ней отсутствуют некоторые необходимые атрибуты (com.amazonaws.ecs.возможности.ecr-аутентификация, ecs.возможности.выполнение-роль-ecr-вытягивание), что не позволяет из контейнера извлекать изображение из ECR.

Когда я создаю задачу с помощью интерфейса командной строки AWS с теми же параметрами (включая те же роли для «роли выполнения» и «роли задачи»), она добавляет все необходимые атрибуты, и контейнер успешно извлекает изображение из ECR.

Определение контейнера json является:

 {
    "containerDefinitions": [
        {
            "name": "container_main_env-test1",
            "image": "586289480321.dkr.ecr.eu-west-1.amazonaws.com/XXXX-saas:latest",
            "cpu": 1024,
            "memory": 5000,
            "essential": true,
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "/ecs/XXXX-test1",
                    "awslogs-region": "eu-west-1",
                    "awslogs-stream-prefix": "ecs"
                }
            },
            "portMappings": [
                {
                    "containerPort": 80,
                    "hostPort": 80
                }
            ]
        }
    ]
}
 

Определение задачи таково:

 resource "aws_ecs_task_definition" "XXXX_task_definition" {
  family        = var.name
  task_role_arn = aws_iam_role.XXXX_ecs_task_role.arn
  execution_role_arn    = "arn:aws:iam::586289480321:role/ecsTaskExecutionRole"
  container_definitions = var.container_definition_content
}
 

Приведенный выше json передается в качестве параметра для этого определения в «var.container_definition_content».

Есть ли известная ошибка в этом или какая-то настройка, которую я упускаю?

Спасибо, Ронен

Комментарии:

1. Что именно является сообщением об ошибке. Кроме того, что именно это var.container_definition_content такое ?

2. Ошибка в том, что: Status reason CannotPullContainerError: Error response from daemon: Get https://586289480321.dkr.ecr.eu-west-1.amazonaws/v2/: dial tcp: lookup 586289480321.dkr.ecr.eu-west-1.amazonaws on 10.0.0.2:53: no such host

3. var.container_definition_content Включает в себя определение контейнера json, которое я привел выше

4. Эта ошибка не похожа на проблему с определением задачи, она похожа на проблему с сетью (поиск DNS). Подсеть VPC, в которой вы развертываете эту задачу ECS, скорее всего, не имеет маршрута шлюза NAT или частной ссылки ECR.

5. Я тоже думал так же, но я просмотрел все настройки, и они в порядке. Более того, когда я развертываю задачу с той же конфигурацией, но вместо использования terraform, я делаю это с помощью aws cli, все работает