Terraform:获取与每个子网关联的 ID

Terraform: Get id associated to each subnet

我有一个子网列表(1 个 public 和 2 个私有子网),我想获取与每个子网关联的 ID。

我的代码结构是:

-- Dev
  -- main.tf
  -- vars.tf
-- modules
  -- sn
    -- ressources.tf
    -- vars.tf

这是我的main.tf

# Create Public Subnet
module "public-sn" {
  source            = "../modules/sn"
  vpc_id            = module.vpc.vpcId 
  sn_az             = [ "********-3a" ]
  sn_cidr           = [ "********.0/24" ]
  sn_tags           = [ "********-sn-a" ] 
  sn_id             = module.sn.snId
}

# Create Private Subnets
module "private-sn" {
  source            = "../modules/sn"
  vpc_id            = module.vpc.vpcId 
  sn_az             = [ "eu-west-3a", "eu-west-3b" ]
  sn_cidr           = [ "********.0/24", "********.0/24" ]
  sn_tags           = [ "********-sn-a", "********-sn-b" ] 
}

这是我的ressources.tf在../sn

resource "aws_subnet" "sn" {
  count                   = length(var.sn_cidr)
  vpc_id                  = var.vpc_id
  cidr_block              = var.sn_cidr[count.index]
  availability_zone       = var.sn_az  [count.index]
  tags                    = { Name = var.sn_tags[count.index] }
}

这是我在 ../sn 中的 output.tf 现在是空的。请帮助获取这些条件下的子网 ID。

提前致谢。

如果你想获得子网 ID 的 list,你在 ../modules/sn/output.tf 中的输出应该是:

output "subnet_ids" {
  value = aws_subnet.sn[*].id
}