Terraform获取subnet_Id异常:返回资源路径而非ID问题咨询
问题解析与解决
1. 你看到的就是正确的子网ID
Azure所有资源的唯一标识符(ID)都是/subscriptions/{订阅ID}/resourceGroups/{资源组名}/providers/{资源类型层级}/{资源名}这种格式的字符串,你拿到的这个“路径”本质就是子网的标准资源ID,完全符合Azure的规范,不是错误结果。
2. 输出不符合预期的核心问题
你贴的子网资源是直接在根模块定义的azurerm_subnet.subnet,但你的输出配置引用的是module.private_network.subnet_id——这意味着你输出的是私有网络模块里的另一个子网ID,而非你自己创建的这个子网的ID。
修正输出配置
如果要输出你创建的这个子网的ID,直接引用根模块内的资源属性即可:
output "subnet_id" { value = azurerm_subnet.subnet.id }
额外检查(如果子网确实在模块内)
如果这个子网是定义在private_network模块里的,那需要确认模块内部的输出配置是否正确:
模块内必须正确输出子网ID:
output "subnet_id" { value = azurerm_subnet.subnet.id }
否则模块返回的subnet_id可能不是你需要的资源ID。
内容的提问来源于stack exchange,提问作者Code Ratchet
相关产品推荐
相关产品推荐

