繁体   English   中英

Terraform RDS 的 AWS 供应商升级问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM