You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform报错Unsupported attribute:module.net不存在vpcs属性

Terraform错误:Unsupported attribute 'vpcs' 修复方案

问题现象

调用gw模块时,Terraform报错module.net不存在vpcs属性,仅识别到cert_arn:

│ Error: Unsupported attribute
│
│   on modules.tf line 47, in module "gw":
│   47:   vpc_id          = module.net.vpcs.inspire.id
│     ├────────────────
│     │ module.net is object with 1 attribute "cert_arn"
│
│ This object does not have an attribute named "vpcs".

根本原因

你的net模块output.tf中,所有输出的键值对使用了JSON语法的冒号(:),但Terraform的HCL语法要求用**等号(=)**定义键值对。这种语法错误导致Terraform无法解析vpcs、subnets、sg、dns这些输出,仅能识别语法正确的cert_arn。

修复步骤

修改net模块的output.tf,将所有冒号替换为等号,修正后的代码如下:

output "vpcs" {
  value = {
    inspire = aws_vpc.inspire
  }
}

output "subnets" {
  value = {
    public  = [aws_subnet.public-a, aws_subnet.public-b]
    private = [aws_subnet.private-a, aws_subnet.private-b]
  }
}

output "sg" {
  value = {
    vpc_internal          = aws_security_group.vpc_internal
    public_egress         = aws_security_group.public_egress
    public_http_ingress   = aws_security_group.public_http_ingress
    public_https_ingress  = aws_security_group.public_https_ingress
  }
}

output "dns" {
  value = {
    private = aws_route53_zone.private
    public  = aws_route53_zone.public
  }
}

output "cert_arn" {
  value = var.certify_domain ? aws_acm_certificate_validation.elb_cert[0].certificate_arn : ""
}

额外验证

  1. 确认net模块中已定义aws_subnet.public-a、aws_security_group.vpc_internal等输出依赖的资源,否则会触发新的报错。
  2. 执行terraform init重新加载模块配置,再用terraform plan验证修复效果。

内容的提问来源于stack exchange,提问作者Marc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:55:27