簡體   English   中英

Terraform Route 53 DNS 記錄指向 AWS Aurora 讀取器實例

[英]Terraform Route 53 DNS record pointing AWS Aurora reader instances

我正在嘗試使用 terraform 創建 Aurora 閱讀器實例,如下所示:

resource "aws_rds_cluster_instance" "wordpress_cluster_instance_readers" {
  count              = var.number_of_instances # 3
  apply_immediately  = true
  cluster_identifier = aws_rds_cluster.wordpress_db_cluster.id
  identifier         = "wordpress-cluster-instance-reader${format(count.index + 1)}"
  instance_class     = "db.t2.small"
  engine             = aws_rds_cluster.wordpress_db_cluster.engine
  engine_version     = aws_rds_cluster.wordpress_db_cluster.engine_version

  depends_on = [aws_rds_cluster.wordpress_db_cluster]
}

對於 Route53 DNS 指向我使用的 Aurora 閱讀器。

resource "aws_route53_record" "readers" {
  count = var.number_of_instances

  zone_id = var.zone_id
  name    = "reader${count.index + 1}.${var.domain}"
  type    = "CNAME"
  ttl     = "300"
  records = [element(aws_rds_cluster_instance.wordpress_cluster_instance_readers[*], count.index)]
}

我得到以下錯誤。

│ Error: Incorrect attribute value type
│   on main.tf line 463, in resource "aws_route53_record" "readers":
│  463:   records = [element(aws_rds_cluster_instance.wordpress_cluster_instance_readers[*], count.index)]
│     ├────────────────
│     │ aws_rds_cluster_instance.wordpress_cluster_instance_readers is tuple with 3 elements
│     │ count.index is 1
│ 
│ Inappropriate value for attribute "records": element 0: string required.

我應該如何修復記錄以反映讀者實例。

您應該能夠使用 terraform 控制台測試您的 terraform 代碼,這樣您將看到該 [element....] 塊的結果,並了解您沒有使用應該在記錄參數 Marco 中的字符串檢索 URL指出了該參數中應該包含的代碼類型,但我想添加有關使用 terraform 控制台的建議。 進入控制台后,您可以測試

element(aws_rds_cluster_instance.wordpress_cluster_instance_readers[*], 1)

看看這有點像

element(aws_rds_cluster_instance.wordpress_cluster_instance_readers, 1)

這將返回整個 aws_rds_cluster_instance object 而不是記錄參數中需要 go 的元素的值

現在如果你測試

aws_rds_cluster_instance.wordpress_cluster_instance_readers[1]

您將檢索與之前不需要元素 function 的測試相同的內容,如果您從 object 添加您需要檢索的元素,您將獲得目標字符串,這可能是“端點”

aws_rds_cluster_instance.wordpress_cluster_instance_readers[1].endpoint

所以最后該行應該看起來像這樣:

records = aws_rds_cluster_instance.wordpress_cluster_instance_readers[count.index].endpoint

正如馬爾科所建議的

暫無
暫無

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

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