Cal*_*ale 11 mysql rds amazon-web-services amazon-route53 terraform
我正在尝试为MySQL RDS实例创建Route53条目,但是:3306
从Terraform返回的RDS端点末尾有问题.
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}"]
}
Run Code Online (Sandbox Code Playgroud)
Terraform将a :3306
放在端点的末尾,并将其输入到CNAME的Route53值.
当我尝试database.example.com
使用MySQL客户端连接到CNAME时,我得到:
ERROR 2005 (HY000): Unknown MySQL server host 'database.example.com' (0)
Run Code Online (Sandbox Code Playgroud)
一旦我通过AWS route53控制台删除:3306它似乎工作得很好.
问题是:如何:3306
从Terraform RDS端点剥离
yda*_*coR 20
除endpoint
输出外,Terraform的aws_db_instance
资源还输出address
提供实例的FQDN.
所以你需要做的就是改变你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}"]
}
Run Code Online (Sandbox Code Playgroud)