1
votes

Terraform InvalidParameterCombination: les groupes de sécurité DB ne peuvent être associés qu'à des instances DB VPC

J'essaie de provisionner une instance RDS à l'aide du modèle terraform et mon modèle ressemble à ceci

​​ 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"
  }
 }

Cependant je reçois cette erreur suivante:

1 erreur (s) s'est produite: * aws_db_instance.echomany_db: 1 erreur (s) s'est produite:

  • aws_db_instance.echomany_db: Erreur lors de la création de l'instance DB: InvalidParameterCombination: les groupes de sécurité DB ne peuvent être associé aux instances de base de données VPC à l'aide des versions d'API 15/01/2012 jusqu'au 17/09/2012. code d'état: 400, ID de la demande: a19ea8ea-8ea0-46e4-97c6-b946419df9a3

Je ne sais pas quel est le problème et comment résoudre ce problème.


0 commentaires

3 Réponses :


2
votes

Comme mentionné dans la documentation vpc_security_group_ids doit être utilisé à la place de security_group_names qui est un argument obsolète.


0 commentaires

1
votes

Paramètre nommé

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

ne peut être utilisé qu'en utilisant le mode ec2-classic ou en dehors de VPC. Utilisez plutôt vpc_security_group_ids .


0 commentaires

0
votes

vous pouvez utiliser vpc_security_groups_ids = [] au lieu de security_group_names car il ne peut être utilisé qu'en mode ec2-classic

exemple:

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


0 commentaires