'Não é uma saída válida para o módulo' ao usar a variável de saída com terraform

Estou tentando configurar algum IaC para um novo projeto usando o Hashicorp Terraform na AWS. Estou usando módulos porque quero poder reutilizar coisas em vários ambientes (teste, prod, dev, etc.)

Estou lutando para entender onde tenho que definir uma variável de saída dentro de um módulo e como usá-la em outro módulo. Qualquer indicação para isso seria muito apreciada!

Preciso usar algumas coisas criadas no meu módulo VPC (IDs de sub-rede) ao criar máquinas EC2. Meu entendimento é que você não pode fazer referência a algo de um módulo em outro, então estou tentando usar uma variável de saída do módulo VPC.

Eu tenho o seguinte no meu sitemain.tf

module "myapp-vpc" {
  source     = "dev/vpc"
  aws_region = "${var.aws_region}"
}

module "myapp-ec2" {
 source     = "dev/ec2"
 aws_region = "${var.aws_region}"
 subnet_id  = "${module.vpc.subnetid"}
}

dev/vpc simplesmente define alguns valores e usa meu módulo vpc:

module "vpc" {
  source = "../../modules/vpc"

  aws_region = "${var.aws_region}"

  vpc-cidr            = "10.1.0.0/16"
  public-subnet-cidr  = "10.1.1.0/24"
  private-subnet-cidr = "10.1.2.0/24"
}

No meu vpc main.tf, tenho o seguinte no final, após oaws_vpc eaws_subnet recursos (mostrando o recurso de sub-rede):

resource "aws_subnet" "public" {
  vpc_id                  = "${aws_vpc.main.id}"
  map_public_ip_on_launch = true
  availability_zone       = "${var.aws_region}a"
  cidr_block              = "${var.public-subnet-cidr}"
}

output "subnetid {
  value = "${aws_subnet.public.id}"
}

Quando eu corroterraform plan Eu recebi a seguinte mensagem de erro:

Erro: módulo 'vpc': "subnetid" não é uma saída válida para o módulo "vpc"

questionAnswers(1)

yourAnswerToTheQuestion