Как вывести идентификатор ресурса в bicep

#azure #azure-resource-manager #azure-virtual-network #azure-bicep

Вопрос:

Как вывести идентификатор ресурса в bicep, при создании подсети как мы получаем выходную строку, синтаксис виртуальной сети показан ниже

 "" 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 = ""  

Ответ №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') }     

Комментарии:

1. Спасибо, он возвращает идентификатор ресурса для одной подсети, но когда я попытался получить идентификатор обеих подсетей, я получил сообщение об ошибке «»Идентификатор ресурса»: тип » Microsoft. Для сети/виртуальных сетей/подсетей» требуется «2» аргумента(ов) имени ресурса» Идентификатор ресурса(тип ресурса: строка, имя ресурса 0 : строка, имя ресурса 1 : строка, имя ресурса 2 : строка, … : строка): строка

2. вывод строки подсети = идентификатор ресурса(‘Microsoft. Сеть/виртуальные сети/подсети», имя сети, «подсеть-1″,»подсеть-2»)

3. Отредактировал свой ответ

4. Спасибо тебе, Чудесно,

5. Пожалуйста, примите ответ, если с вашей стороны все в порядке