azure 无法检索subnet_Id - Terraform

flvlnr44  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(95)

我已经通过Terraform创建了一个子网

resource "azurerm_subnet" "subnet" {
  depends_on = [ azurerm_virtual_network.vnet ]
  name                 = lower("${var.application_name}-subnet-${var.location_short}-${var.environment}")
  resource_group_name  = azurerm_resource_group.networking_rg.name
  virtual_network_name = azurerm_virtual_network.vnet.name
  address_prefixes     = ["10.0.14.224/27"] #-> 10.0.14.255
  service_endpoints    = ["Microsoft.Storage"]
  delegation {
    name = "AFADelegation"
    service_delegation {
      name    = "Microsoft.DBforPostgreSQL/flexibleServers"
      actions = ["Microsoft.Network/virtualNetworks/subnets/join/action"]
    }
  }
}

字符串
我尝试输出上面的subnetId,这样我就可以将我的App Service添加到私有网络中,但是,在输出subnetId时:

output "subnet_id" {
  value = module.private_network.subnet_id
}


我并没有得到身份证,而是
“/subscriptions/2XXXXX-XXXX-XXX-XXXX-XXXXXX/resourceGroups/rg-networking-ae-dev-rg/providers/Microsoft.Network/virtualNetworks/rg-vnet-ae-dev/subnets/pn-subnet-ae-dev”
为什么我拿不到身份证?

8ftvxx2r

8ftvxx2r1#

我并没有得到身份证,而是
“/subscriptions/2XXXXX-XXXX-XXX-XXXX-XXXXXX/resourceGroups/rg-networking-ae-dev-rg/providers/Microsoft.Network/virtualNetworks/rg-vnet-ae-dev/subnets/pn-subnet-ae-dev”
为什么我拿不到身份证?
您使用terraform为subnet_id检查Subnet ID时获得的值是子网的资源标识符,格式为Azure Resource Manager。它包括subscription IDresource group名称、virtual network namesubnet name。它仍然是唯一标识Azure中子网资源的有效标识符。

输出:

x1c 0d1x的数据
如果您特别希望仅从资源标识符中提取子网名称,则可以使用elementsplit函数来提取子网基名称。
现在,当您运行terraform apply时,输出subnet_id将包含从完整资源标识符中提取的子网的基本名称。
注意:子网ID是Azure资源管理器格式的有效标识符。您也可以从门户验证相同的值。如果要在其他地方使用子网ID,则需要传递整个值。

输出:



参考:Query Data with Output Variables

相关问题