[DUVIDA-TERRAFORM] Como usar um variável de um módulo dentro de outro módulo
Ótimo dia, espero que esteja bem, estou brincando com terraform e aws, estou tentando criar minha rede pelo terraform, separei em modulos:
-projeto
-modules
---network
----vpc
------main
------outputs
----subnets
------main
------outputs
----routes_tables
Minha duvida é como exporto ás váriáveis da vpc(id) para poder usar em minhas subnets tentei algumas coisa e deu erro(de acordo com minhas pesquisas) a uníca coisa que deu certo foi incluir o modulo dentro do main de minha subnet:
\modules\network\subnets\main.tf
module "vpcs" {
source = "../vpcs"
}
resource "aws_subnet" "subnet_public_us_east_1a" {
vpc_id = module.vpcs.vpc_taskapp_id
cidr_block = "10.0.0.0/24"
availability_zone = "us-east-1a"
tags = {
project = "taskapp"
}
}
resource "aws_subnet" "subnet_public_us_east_1b" {
vpc_id = module.vpcs.vpc_taskapp_id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1b"
tags = {
project = "taskapp"
}
}
resource "aws_subnet" "subnet_public_us_east_1c" {
vpc_id = module.vpcs.vpc_taskapp_id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1c"
tags = {
project = "taskapp"
}
}
modules\network\vpcs\outputs.tf
output "vpc_taskapp_id" {
value = aws_vpc.vpc_taskapp.id
}
terraform\main.tf
provider "aws" {
region = "us-east-1"
}
module "vpcs" {
source = "./modules/network/vpcs"
}
module "subnets" {
source = "./modules/network/subnets"
depends_on = [ module.vpcs ]
}
Agora não sei se estou fazendo nas melhores práticas ou se desse jeito é gambiarra.