【问题标题】:How to output resource id in bicep如何在二头肌中输出资源ID
【发布时间】:2021-10-21 00:23:30
【问题描述】:

二头肌中如何输出资源id,创建子网时如何获取输出字符串,虚拟网络语法如下图

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: vnetName
  location: resourceGroup().location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'subnetpoc-1'
        properties: {
          addressPrefix: '10.0.3.0/24'
        }
      }
      {
        name: 'subnetnetpoc-2'
        properties: {
          addressPrefix: '10.0.4.0/24'
        }
      }
    ]
  }
}

// output subnet string = ""

【问题讨论】:

    标签: azure azure-resource-manager azure-virtual-network azure-bicep


    【解决方案1】:

    您可以为此使用resourceId 函数:

    param vnetName string
    
    resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
      name: vnetName
      ...
    }
    
    // Return the 1st subnet id
    output subnetId1 string = resourceId('Microsoft.Network/VirtualNetworks/subnets', vnetName, 'subnetpoc-1')
    
    // Return the 2nd subnet id
    output subnetId2 string = resourceId('Microsoft.Network/VirtualNetworks/subnets', vnetName, 'subnetpoc-2')
    
    // Return as array
    output subnetIdsArray array = [
      resourceId('Microsoft.Network/VirtualNetworks/subnets', vnetName, 'subnetpoc-1')
      resourceId('Microsoft.Network/VirtualNetworks/subnets', vnetName, 'subnetpoc-2')
    ]
    
    // Return as object
    output subnetIdsObject object = {
      subnetId1: resourceId('Microsoft.Network/VirtualNetworks/subnets', vnetName, 'subnetpoc-1')
      subnetId2: resourceId('Microsoft.Network/VirtualNetworks/subnets', vnetName, 'subnetpoc-2')
    }
    
    
    
    

    【讨论】:

    • 谢谢,它确实返回了单个子网的资源 ID,但是当我尝试获取两个子网 ID 时,我收到错误“'resourceId':类型'Microsoft.Network/VirtualNetworks/subnets '需要'2'资源名称参数" resourceId(resourceType: string, resourceName0 : string, resourceName1 : string, resourceName2 : string, ... : string): string
    • 输出 subnetId 字符串 = resourceId('Microsoft.Network/VirtualNetworks/subnets', vnetName, 'subnetpoc-1','subnetpoc-2')
    • 编辑了我的答案
    • 非常感谢,
    • 如果您觉得可以,请接受答案
    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 2021-09-04
    • 2022-10-06
    • 2021-11-20
    相关资源
    最近更新 更多