如何在Terraform中输出模块内资源的名称
Terraform资源组名称输出错误修正
你犯的核心错误是引用方式不对——这里的资源组是当前配置内定义的本地资源,不是来自其他模块的输出,所以不能用module.rg_infrastructure.name,应该直接引用本地资源的属性。
正确的输出写法如下:
resource "azurerm_resource_group" "rg_infrastructure" { name = "rg_${var.environment}_Infrastructure" location = var.location } output "rg_infrastructureName" { value = azurerm_resource_group.rg_infrastructure.name }
Terraform中引用本地资源属性的固定格式是:资源类型.资源名称.属性名。这里azurerm_resource_group是资源类型,rg_infrastructure是你为该资源定义的名称,.name就是要获取的目标属性。
如果后续你把这个资源组封装成独立模块,才需要在模块内部输出name字段,再在调用模块时用module.模块名称.name的格式引用,但当前场景不需要额外嵌套模块。
内容的提问来源于stack exchange,提问作者JensB
相关产品推荐
相关产品推荐

