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