У меня есть контейнер, работающий в AWS ECS с использованием Fargate.
Я регистрирую его в Terraform ниже и добавляю имя хоста к обнаружению службы. Я вижу, что он добавляет его в route53, а затем удаляет, я предполагаю, что это из-за того, что он не прошел проверку работоспособности.
Ошибка при приведенной ниже ошибке при запуске контейнера:
company / cmd createServer net .Listen company.qcap.prod:50031 listen tcp: lookup company.qcap .prod на 10.0.0.2:53: такого хоста нет
Мой сервис не может прослушивать адрес, пока хост не зарегистрирован в Route53, но мой Route53 удаляет запись DNS, если он не работает check.
Есть ли способ указать заданию дождаться добавления этой записи и затем выполнить проверку работоспособности?
Ниже приведен мой Terraform для службы
data "template_file" "company" {
template = file("./templates/ecs/company.json.tpl")
vars = {
app_port = 50010
fargate_cpu = var.fargate_cpu
fargate_memory = var.fargate_memory
aws_region = var.region
}
}
resource "aws_ecs_task_definition" "company" {
family = "company-app-task"
execution_role_arn = aws_iam_role.ecs_task_execution_role.arn
network_mode = "awsvpc"
requires_compatibilities = [
"FARGATE"]
cpu = var.fargate_cpu
memory = var.fargate_memory
container_definitions = data.template_file.company.rendered
}
resource "aws_ecs_service" "company-service" {
name = "company-service"
cluster = aws_ecs_cluster.main.id
task_definition = aws_ecs_task_definition.company.id
desired_count = var.app_count
launch_type = "FARGATE"
network_configuration {
security_groups = [
aws_security_group.ecs_tasks.id
]
subnets = module.vpc.private_subnets
assign_public_ip = true
}
service_registries {
container_name = "company"
registry_arn = aws_service_discovery_service.company.arn
}
lifecycle {
create_before_destroy = true
}
depends_on = [
aws_iam_role_policy_attachment.ecs_task_execution_role
]
}
resource "aws_service_discovery_service" "company" {
name = "company"
dns_config {
namespace_id = aws_service_discovery_private_dns_namespace.qcap_prod_sd.id
routing_policy = "MULTIVALUE"
dns_records {
ttl = 10
type = "A"
}
}
health_check_custom_config {
failure_threshold = 10
}
}