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

如何在Terraform不同模块间引用输出值?以GCP网络、服务器模块为例

Terraform跨模块调用输出值操作步骤
  • 第一步:修正network模块的输出配置
    你当前modules/network/output.tf存在语法错误,资源引用需要指定对应的资源标识,修改为以下内容:
output "subnet_id" {
  value = google_compute_subnetwork.default.id
}
  • 第二步:给server模块声明接收子网ID的输入变量
    在modules/server/variable.tf中新增变量定义:
variable "subnet_id" {
  type        = string
  description = "从network模块传递过来的子网ID"
}
  • 第三步:在根目录的node.tf中完成模块实例化和参数传递
    根配置文件中需要同时实例化两个模块,将network模块的输出作为参数传入server模块:
# 实例化network模块
module "network" {
  source   = "./modules/network"
  vpc_name = "你自定义的VPC名称"
  # 其他network模块所需的入参按需补充
}

# 实例化server模块
module "server" {
  source    = "./modules/server"
  subnet_id = module.network.subnet_id
  # 其他server模块所需的入参按需补充
}
  • 第四步:填充server模块main.tf中的subnetwork字段
    直接引用刚才声明的输入变量即可:
resource "google_compute_address" "internal_ip" {
  name         = "my-internal-address"
  project      = "fivenodeautomation"
  subnetwork   = var.subnet_id
  address_type = "INTERNAL"
  address      = "10.0.1.0"
  region       = "us-central1"
  purpose      = "GCE_ENDPOINT"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:57:03