使用Terraform创建Aurora PostgreSQL集群遇参数错误求助
问题描述
执行terraform apply创建Aurora PostgreSQL集群时触发错误:
Error: error creating RDS cluster: InvalidParameterValue: DatabaseName cannot be used. It is a reserved word for this engine
用户的Terraform集群资源代码片段:
######### Creating RDS cluster ########### resource "aws_rds_cluster" "db-cluster" { cluster_identifier = var.cluster_identifier engine = "aurora-postgresql" engine_version = "14.6" database_name = var.database_name }
用户尝试过db_name参数,但该参数在集群资源中不被支持,期望实现集群创建时自动生成指定名称的数据库。
解决方案
Aurora PostgreSQL与Aurora MySQL不同,集群层面的database_name参数是被禁用的,无法通过集群资源直接指定自动创建的数据库名称。要实现自动创建指定名称的数据库,需要在**Aurora集群实例(aws_rds_cluster_instance)**的配置中添加db_name参数:
- 移除集群资源中的
database_name字段:
resource "aws_rds_cluster" "db-cluster" { cluster_identifier = var.cluster_identifier engine = "aurora-postgresql" engine_version = "14.6" # 移除database_name参数 }
- 在对应的集群实例资源中添加
db_name参数:
resource "aws_rds_cluster_instance" "db-instance" { cluster_identifier = aws_rds_cluster.db-cluster.id instance_class = "db.t3.small" # 替换为你的实例类型 engine = "aurora-postgresql" engine_version = "14.6" db_name = var.database_name # 在这里指定数据库名称 }
配置完成后,执行terraform apply即可在创建集群实例时自动生成指定名称的数据库。
内容的提问来源于stack exchange,提问作者Saurabh
相关产品推荐
相关产品推荐

