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:
Je ne sais pas quel est le problème et comment résoudre ce problème.
3 Réponses :
Comme mentionné dans la documentation vpc_security_group_ids code> doit être utilisé à la place de security_group_names qui est un argument obsolète.
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 .
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}"]