Terraform InvalidParameterCombination:数据库安全组只能与 VPC 数据库实例关联

Posted

技术标签:

【中文标题】Terraform InvalidParameterCombination:数据库安全组只能与 VPC 数据库实例关联【英文标题】:Terraform InvalidParameterCombination: DB Security Groups can only be associated with VPC DB Instances 【发布时间】:2019-06-29 01:57:16 【问题描述】:

我正在尝试使用 terraform 模板配置 RDS 实例,我的模板看起来像这样

template.tf

  resource "aws_security_group" "web-server-security"
  name = "webserver-sg"
  description = "webserver security group"
  ingress 
  from_port = 80
  to_port = 80
  protocol = "tcp"
  cidr_blocks = ["0.0.0.0/0"]

tags
  Name = "web-server-sg"


resource "aws_security_group" "db-server-sg" 
  name = "db-server"
  description = "dbserver security group"
  ingress 
  from_port = 3306
  to_port = 3306
  protocol = "tcp"
  security_groups = ["$aws_security_group.web-server-security.id"]
 
  tags
   Name = "db-server-sg"
  
 

resource "aws_db_instance" "echomany_db" 
   name = "echomanydb"
   engine = "mysql"
   engine_version = "5.7"
   storage_type = "gp2"
   allocated_storage = 20
   instance_class = "db.t2.micro"
   username = "$var.AWS_DB_USERNAME"
   password = "$var.AWS_DB_PASSWORD"
   parameter_group_name = "default.mysql5.7"
   skip_final_snapshot = true
   security_group_names = [
   "$aws_security_group.db-server-sg.id"
  ]
  tags
    Name = "db-server"
  
 

但是我得到以下错误:

发生 1 个错误: * aws_db_instance.echomany_db:发生 1 个错误:

aws_db_instance.echomany_db:创建数据库实例时出错: InvalidParameterCombination:数据库安全组只能 使用 API 版本与 VPC 数据库实例关联 2012-01-15 至 2012 年 9 月 17 日。 状态码:400,请求ID:a19ea8ea-8ea0-46e4-97c6-b946419df9a3

我不知道是什么问题以及如何解决此问题。

【问题讨论】:

【参考方案1】:

如文档所述,应使用 vpc_security_group_ids 而不是 security_group_names,这是一个已弃用的参数。

【讨论】:

【参考方案2】:

参数命名

security_group_names = [ "$aws_security_group.db-server-sg.id" ]

只能在使用 ec2-classic 模式或在 VPC 之外使用。 请改用vpc_security_group_ids。

【讨论】:

【参考方案3】:

你可以使用vpc_security_groups_ids = [ ]而不是security_group_names,因为它只能在使用ec2-classic模式时使用

示例:

vpc_security_group_ids=["$aws_security_group.rds.id"]

【讨论】:

以上是关于Terraform InvalidParameterCombination:数据库安全组只能与 VPC 数据库实例关联的主要内容,如果未能解决你的问题,请参考以下文章

Terraform 学习总结——Terraform 命令详解

Terraform 学习总结(10)—— 阿里云平台 Terraform 代码开发技巧总结

Terraform 学习总结(10)—— 阿里云平台 Terraform 代码开发技巧总结

Terraform 学习总结(10)—— 阿里云平台 Terraform 代码开发技巧总结

terraform如何创建数据盘

Terraform 学习总结—— Terraform 常用命令再总结