Jump to content

Bicep Module Arrays und Outputs


Recommended Posts

Hallo,

ich baue gerade das ein oder andere größere Bicep Deployment. In einem Fall möchte ich gerne es etwas schöner lösen, komme aber nicht weiter.

 

Ich habe ein main.bicep Script, welches als targetscope = 'Subscription' läuft um meine Resource Gruppen zu erstellen. Alle anderen Ressourcen werden dann als Module aus dem main Script gestartet.

Ich lege im ersten Modul mehrere virtuelle Netze an. In diesem Script gebe ich über output die ResourceID der erstellten virtuellen Netze zurück.

Anschließend habe ich im main Script eine Variable als array erstellt

 

var Netzids = [
  VirtualNetworks.outputs.vnet2id
  VirtualNetworks.outputs.vnet3id
  VirtualNetworks.outputs.vnet4id
]

 

ich rufe nun das Modul für meine privaten DNS Zonen und deren vnet verlinkungen auf und übergebe das array als Parameter

module PrivateDNSZones 'privatedns.bicep' = {
  scope: resourceGroup(rg_000.name)
  name: 'Deployment-Private-DNS-Zones'
  params: {
    vnetlinkids: Netzids
  }
  dependsOn: [
    VirtualNetworks
  ]
}

 

Das funktioniert soweit ohne Probleme.

 

Allerdings nun in der for Schleife komme ich mit dem Namen nicht zurecht. Dieser muss ja eindeutig sein:

resource vnetlinkblob 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2024-06-01' = [for vnet in vnetlinkids: {
  name: 'link-${vnet}'
  parent: PrivatLinkBlob
  location: 'global'
  properties: {
    registrationEnabled: false
    virtualNetwork: {
      id: vnet
    }
  }
  
}]

 

In vnet steht allerdings die ID drin und nicht der Name vom Subnet. Damit läuft das Deployment auf die Nase. Ich glaube ansonsten würde es funktionieren.

 

Die Frage ist nun, wie komme ich an den Namen des vnets um für den Link einen eindeutigen Namen zu haben?

Link to comment
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...