2016-10-04 8 views
9

Я пытаюсь создать запись Route53 для экземпляра RDS MySQL, но имеет проблемы с :3306 в конце конечной точки RDS, возвращаемой из Terraform.Создание записи Route53 для RDS с использованием Terraform

resource "aws_db_instance" "mydb" { 
    allocated_storage = 10 
    engine    = "mysql" 
    engine_version  = "5.6.17" 
    instance_class  = "db.t2.micro" 
    name     = "mydb" 
    username    = "foo" 
    password    = "bar" 
    db_subnet_group_name = "my_database_subnet_group" 
    parameter_group_name = "default.mysql5.6" 
    } 

    resource "aws_route53_record" "database" { 
     zone_id = "${aws_route53_zone.primary.zone_id}" 
     name = "database.example.com" 
     type = "CNAME" 
     ttl = "300" 
     records = ["${aws_db_instance.default.endpoint}"] 
    } 

Terraform ставит :3306 в конце конечной точки и получает введен в Route53 Значение по CNAME.

Когда я затем попытаться подключиться к CNAME database.example.com с клиентом MySQL я получаю:

ERROR 2005 (HY000): Unknown MySQL server host 'database.example.com' (0) 

После того, как я извлекаю: 3306 через route53 консоли AWS Это кажется работа просто отлично.

Вопрос: Как я могу лишить :3306 от конечной точки Terraform RDS

ответ

11

а также endpoint выход, aws_db_instance ресурс терраформировать также выводит address, что обеспечивает полное доменное имя экземпляра.

Так все, что вам нужно сделать, это изменить свой aws_route53_record ресурс использовать address вместо:

resource "aws_db_instance" "mydb" { 
    allocated_storage = 10 
    engine    = "mysql" 
    engine_version  = "5.6.17" 
    instance_class  = "db.t2.micro" 
    name     = "mydb" 
    username    = "foo" 
    password    = "bar" 
    db_subnet_group_name = "my_database_subnet_group" 
    parameter_group_name = "default.mysql5.6" 
} 

resource "aws_route53_record" "database" { 
    zone_id = "${aws_route53_zone.primary.zone_id}" 
    name = "database.example.com" 
    type = "CNAME" 
    ttl = "300" 
    records = ["${aws_db_instance.mydb.address}"] 
} 
+0

mydb.address работал как шарм. адрес - адрес экземпляра RDS. BTW Я бы тоже ответил, но у меня пока нет достаточного влияния. – Cale

 Смежные вопросы

  • Нет связанных вопросов^_^