为 Aurora PostgreSQL 创建只读副本时的 Terraform InvalidParameterCombination

问题描述 投票:0回答:1

我正在尝试使用 terraform 为现有 aurora postgres 集群创建只读副本。 这是我使用的脚本。

resource "aws_rds_cluster" "test_db_cluster" {
  cluster_identifier            = "${var.base_name}-read-replica"
  engine                        = "aurora-postgresql"
  engine_mode                   = "provisioned"
  engine_version                = "16.1"
  skip_final_snapshot           = true
  storage_encrypted             = true
  replication_source_identifier = "arn:aws:rds:us-east-1:<xxx>:cluster:testdev"
  source_region                 = "us-east-1"
}

但它给出了以下错误。

InvalidParameterCombination:数据库引擎 aurora-postgresql 不支持跨区域只读副本。

原始极光星团位于同一区域us-east-1。我尝试使用和不使用 source_region 但它给出了相同的错误。

Terraform 版本:~> 4.0

原始集群也是使用 terraform 脚本创建的。就是这个。

resource "aws_rds_cluster" "test_db_cluster" {
  cluster_identifier = var.base_name
  engine             = "aurora-postgresql"
  engine_mode        = "provisioned"
  engine_version     = "16.1"
  database_name      = var.database_name
  master_username    = var.master_username
  db_subnet_group_name = var.subnet_group
  vpc_security_group_ids = [var.security_group_id]
  availability_zones     = [var.az]
  skip_final_snapshot    = true
  storage_encrypted = true
  manage_master_user_password   = true
  master_user_secret_kms_key_id = aws_kms_key.scopp_db_kms.key_id

  serverlessv2_scaling_configuration {
    max_capacity = var.max_capacity
    min_capacity = var.min_capacity
  }
}

resource "aws_rds_cluster_instance" "test_db_instance" {
  identifier = "${var.base_name}-instance-1"
  cluster_identifier = aws_rds_cluster.test_db_cluster.id
  instance_class     = "db.serverless"
  engine             = aws_rds_cluster.test_db_cluster.engine
  engine_version     = aws_rds_cluster.test_db_cluster.engine_version
  performance_insights_enabled = true
}

resource "aws_kms_key" "test_db_kms" {
  description = "Test DB KMS Key"
}

这里有什么问题?

postgresql amazon-web-services terraform terraform-provider-aws aws-aurora-serverless
1个回答
0
投票

我就是我的情况,(单区域应用程序)我很困惑,仔细检查了我学到的API文档:要小心-

replication_source_identifier
需要一个 全局 arn,而不是区域数据库实例标识符 参数。

跨区域错误意味着抱怨当它解析(或解析)此 arn 时,Arn 中指定的区域与 API 调用所针对的 AWS 区域不匹配。

© www.soinside.com 2019 - 2024. All rights reserved.