#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, все работает