无法使用Terraform在AWS中创建RDS全局数据库

时间:2018-12-31 12:48:07

标签: terraform

我正在尝试使用Terraform在AWS中创建rds全局数据库。创建了主群集,但辅助群集由于以下错误而失败-

* aws_rds_cluster.secondary: error creating RDS cluster: 
InvalidParameterCombination: Cannot specify user name for cross 
region replication cluster
status code: 400, request id: 10b82a78-898c-49e6-b28f- 
0a318fdc226f

我尝试删除master_username,但是出现以下错误-

* aws_rds_cluster.secondary: provider.aws: aws_rds_cluster: : 
"master_username": required field is not set

我的Terraform模块,用于在aws中创建rds全局数据库-

resource "aws_rds_global_cluster" "rdsglobal" {
  provider                  = "aws.primary"

  global_cluster_identifier = "${var.global_database_id}"
  storage_encrypted         = "${var.storage_encrypted}"
}

resource "aws_rds_cluster_instance" "primary" {
  provider                  = "aws.primary"
  count                     = "${var.instance_count}"
  identifier                = "${var.db_name}-${count.index+1}"
  cluster_identifier        = "${aws_rds_cluster.primary.id}"
  instance_class            = "${var.instance_class}"
  engine                    = "${var.engine}"
  engine_version            = "${var.engine_version}"
  publicly_accessible       = "${var.publicly_accessible}"

}

resource "aws_rds_cluster" "primary" {
  provider                  = "aws.primary"
  cluster_identifier        = "${var.primary_cluster_id}"
  database_name             = "${var.db_name}"
  port                      = "${var.port}"
  engine                    = "${var.engine}"
  engine_version            = "${var.engine_version}"
  master_username           = "${var.master_username}"
  master_password           = "${random_string.password.result}"
  vpc_security_group_ids    = ["${var.security_group_ids}"] 
  db_subnet_group_name      = "${var.db_subnet_group_name}" 
  storage_encrypted         = "${var.storage_encrypted}"
  backup_retention_period   = "${var.backup_retention_period}"
  skip_final_snapshot       = "${var.skip_final_snapshot}"
  engine_mode               = "${var.engine_mode}"
  global_cluster_identifier = "${aws_rds_global_cluster.rdsglobal.id}"

}


resource "aws_rds_cluster_instance" "secondary" {
  provider                  = "aws.secondary"
  count                     = "${var.instance_count}"
  identifier                = "${var.db_name}-${count.index+1}"
  cluster_identifier        = "${aws_rds_cluster.secondary.id}"
  instance_class            = "${var.instance_class}"
  engine                    = "${var.engine}"
  engine_version            = "${var.engine_version}"
  publicly_accessible       = "${var.publicly_accessible}"

}

resource "aws_rds_cluster" "secondary" {
  depends_on                = ["aws_rds_cluster_instance.primary"]
  provider                  = "aws.secondary"
  cluster_identifier        = "${var.secondary_cluster_id}"
  port                      = "${var.port}"
  engine                    = "${var.engine}"
  engine_version            = "${var.engine_version}"
  master_username           = "${var.master_username}"
  master_password           = "${random_string.password.result}"
  vpc_security_group_ids    = ["${var.secondary_security_group_ids}"] 
  db_subnet_group_name      = "${var.db_subnet_group_name}" 
  engine_mode               = "${var.engine_mode}"
  global_cluster_identifier = "${aws_rds_global_cluster.rdsglobal.id}"

}

参考:https://www.terraform.io/docs/providers/aws/r/rds_global_cluster.html

1 个答案:

答案 0 :(得分:0)

如果要创建全局集群,则不需要为辅助集群提供master_usernamemaster_password