sub
sub

Reputation: 669

How to reference parent resource in module in azure bicep?

I am trying to create a service bus and topic (many topics and their subscriptions) with the azure bicep.

  1. I have main bicep like below

    param topics array;
    
    resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2018-01-01-preview' = {
    name: serviceBusNamespaceName
    location: location
     sku: {
       name: skuName
     }
    }
    
    module topicSubscription './sb_topic.bicep' = [for topic in topics: {
    name: 'topicSubscription${topic}'
    params: {
    topic: topic
      }
    }]
    

module file looks like

resource sbTopics 'Microsoft.ServiceBus/namespaces/topics@2022-01-01-preview' = {
  name: topic.name
  parent: ??
  properties: topic.properties

  resource symbolicname 'subscriptions@2022-01-01-preview' =  [for subscription in topic.subscriptions: {
    name: 'string'
    properties: {}
  }]
}

How can pass the parent serviceBusNamespace resource as parent to the child resource inside the module?

Kindly suggest..

Upvotes: 0

Views: 863

Answers (1)

Scott Mildenberger
Scott Mildenberger

Reputation: 1597

In the module reference the namespace with an 'existing' declaration. Something like this

param namespaceName string

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2018-01-01-preview' existing = {
  name: namespaceName
}

resource sbTopics 'Microsoft.ServiceBus/namespaces/topics@2022-01-01-preview' = {
  name: topic.name
  parent: serviceBusNamespace
  properties: topic.properties

  resource symbolicname 'subscriptions@2022-01-01-preview' =  [for subscription in topic.subscriptions: {
    name: 'string'
    properties: {}
  }]
}

Upvotes: 3

Related Questions