![](/img/trans.png)
[英]Terraform Postgresql provider error for AWS RDS: "dial tcp 127.0.0.1:5432: connect: connection refused"
[英]Terraform AWS provider upgrade issue with RDS
尝试将 AWS 提供商升级到版本 4,但在 RDS 模块中出现以下错误:
Error: Conflicting configuration arguments
│
│ with module.my-instance-mysql-eu[0].module.rds.module.db_instance.aws_db_instance.this[0],
│ on .terraform/modules/my-instance-mysql-eu.rds/modules/db_instance/main.tf line 47, in resource "aws_db_instance" "this":
│ 47: db_name = var.db_name
│
│ "db_name": conflicts with replicate_source_db
错误说明db_name
属性与replicate_source_db
属性冲突; 您不能同时指定这两个属性,它必须是其中之一。 Terraform 文档中也提到了这一点。
如果您要复制现有的 RDS 数据库,数据库名称将与源名称相同。 如果这是一个新数据库,则根本不要设置replicate_source_db
属性。
我在engine
& engine_version
变量中遇到了类似的问题:
│ Error: Conflicting configuration arguments
│
│ with module.production.module.replica_app_db_production.aws_db_instance.db,
│ on modules/rds/postgres/main.tf line 36, in resource "aws_db_instance" "db":
│ 36: engine = var.engine
│
│ "engine": conflicts with replicate_source_db
╵
╷
│ Error: Conflicting configuration arguments
│
│ with module.production.module.replica_app_db_production.aws_db_instance.db,
│ on modules/rds/postgres/main.tf line 37, in resource "aws_db_instance" "db":
│ 37: engine_version = var.engine_version
│
│ "engine_version": conflicts with replicate_source_db
╵
我在这里找到了一个很好的解决方案示例: https://github.com/terraform-aws-modules/terraform-aws-rds/blob/v5.2.2/modules/db_instance/main.tf
我设法用以下条件解决了这个问题:
# Replicas will use source metadata
username = var.replicate_source_db != null ? null : var.username
password = var.replicate_source_db != null ? null : var.password
engine = var.replicate_source_db != null ? null : var.engine
engine_version = var.replicate_source_db != null ? null : var.engine_version
如果var.replicate_source_db
不是 null,则用户名/密码/引擎/引擎版本将设置为 null(这是我们需要的,因为无法为副本指定这些变量)。 如果它不是副本,那么我们将相应地设置变量:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.