実現したいこと
Terraform Planを通したい
前提
フォルダ構成は下記の通りです。
(stg,prodはdevと同じ構成)
git管理フォルダ └env | └dev | └main.tf | └variables.tf | └terraform.tfvars | └stg | └prod | └modules └vpc └main.tf └variables.tf └output.tf └ec2 └main.tf └variables.tf └output.tf └aurora └main.tf └variables.tf
発生している問題・エラーメッセージ
│Error: Missing required argument │ on main.tf line 31, in module "aurora": │ 31: module "aurora" { │The argument "private_sub1" is required, but no definition was found. │Error: Missing required argument │ on main.tf line 31, in module "aurora": │ 31: module "aurora" { │The argument "private_sub2" is required, but no definition was found.
エラー対象のコード
ec2/outputs.tf
output "env" { value = var.env } output "vpc_id" { value = "aws_vpc.vpc.id" } output "private_sub1" { value = "aws_subnet.private1.id" } output "private_sub2" { value = "aws_subnet.private2.id" }
dev/main.tf
terraform { required_version = ">= 0.12" backend "s3" { bucket = "dev-terraform-module" key = "terraform.tfstate" region = "ap-northeast-1" } } provider "aws" { region = "ap-northeast-1" } # variables.tfの値を参照する # vpcモジュールを呼び出す module "vpc" { source = "../../module/vpc" env = var.env cidr = var.cidr } # ec2モジュールを呼び出す module "ec2" { source = "../../module/ec2" env = var.env vpc_id = aws_vpc.vpc.id } #auroraモジュールを呼び出す module "aurora" { source = "../../module/aurora" env = var.env vpc_id = aws_vpc.vpc.id }
aurora/variables.tf
riable "env" { type = string } variable "vpc_id" { type = string } variable "private_sub1" { type = string } variable "private_sub2" { type = string }
aurora/main.tf
# セキュリティグループ作成 resource "aws_security_group" "sg_aurora" { name = "sg_aurora" vpc_id = var.vpc_id tags = { Name = "${var.env}-sg_aurora" } egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } } #許可するセキュリティルール resource "aws_security_group_rule" "sb_rule_aurora" { type = "ingress" from_port = 3306 to_port = 3306 protocol = "tcp" #inしていいセキュリティグループID source_security_group_id = aws_security_group.sg_ec2.id #このセキュリティルールの関連付け対象であるセキュリティグループ security_group_id = aws_security_group.sg_aurora.id } # dbサブネットグループ作成 resource "aws_db_subnet_group" "db_group" { name = "tf_db_group" subnet_ids = [var.private_sub1, var.private_sub2] tags = { Name = "terraform module subnet group" } } # auroraリソース作成 resource "aws_rds_cluster" "aurora_terraform_module" { cluster_identifier = "aurora-cluster" engine = "aurora-mysql" engine_version = "5.7.mysql_aurora.2.10.2" database_name = "mydb" #username,passwordは変えています master_username = "・・・・" master_password = "・・・・" db_subnet_group_name = aws_db_subnet_group.db_group.name vpc_security_group_ids = aws_security_group.sg_aurora.id }
調べた、実践したこと
ec2/outputs.tf
の値がdev/main.tf
に渡され、auroraリソースを作成するためにmodule/auroraを参照
→module/aurora/variables.tf
で値を受け取り、aurora/main.tf
を参照してリソースを作成する
といった流れを想定し、ec2/outputs.tf
とmodule/aurora/variables.tf
の種類を揃えてgithubにpushしましたが、エラーになりました。
お願いしたいこと
ec2/outputs.tf
とmodule/aurora/variables.tf
の種類を揃えましたが、エラーが出てしまいます。
コードのミスや解決方法を教えてください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/11 06:51
2022/06/11 07:16 編集
2022/06/11 07:29
2022/06/12 03:19
2022/06/12 03:52