我正在尝试使用 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"
}
这里有什么问题?
我就是我的情况,(单区域应用程序)我很困惑,仔细检查了我学到的API文档:要小心-
replication_source_identifier
需要一个 全局 arn,而不是区域数据库实例标识符 参数。
跨区域错误意味着抱怨当它解析(或解析)此 arn 时,Arn 中指定的区域与 API 调用所针对的 AWS 区域不匹配。