簡體   English   中英

使用Terraform為RDS創建Route53條目

[英]Creating a Route53 entry for RDS using Terraform

我正在嘗試為MySQL RDS實例創建Route53條目,但在Terraform返回的RDS端點末尾遇到問題:3306

    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 ,並將其輸入到CNAME的Route53值。

當我嘗試使用MySQL客戶端連接到CNAME database.example.com ,我得到:

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

一旦我通過AWS route53控制台刪除:3306它似乎工作得很好。

問題是:如何從Terraform RDS端點剝離:3306

endpoint輸出外,Terraform的aws_db_instance資源還輸出提供實例FQDN的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}"]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM