How do I reference a resource created in a bicep file that shares the same parent main.bicep file?
I have three bicep files…
main.bicep
module ddosProtectionPlanModule 'ddosProtectionPlan.bicep' = {
name: 'de-ddos-qa-01'
scope: resourceGroup('00000000-0000-0000-0000-000000000000','QA-01')
params: {
name: 'ddos-qa-01'
}
}
module vnet 'vnet.bicep' = {
name: 'VNet-dev-01'
params: {
ddosProtectionPlan: ddosProtectionPlanModule.outputs.ddosProtectionPlan
}
}
ddosprotectionplan.bicep
param name string
resource ddosProtectionPlan 'Microsoft.Network/ddosProtectionPlans@2021-05-01' = {
name: name
location: resourceGroup().location
}
output ddosProtectionPlan object = ddosProtectionPlan
vnet.bicep
param appTitle string = 'test'
param environment string = 'Dev'
param ddosProtectionPlan object
param vlanName string = '${appTitle}-vlan-${environment}-99'
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: vlanName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.70.0.0/24'
]
}
enableDdosProtection: true
ddosProtectionPlan: {
id: ddosProtectionPlan.id
}
}
}
resource subnet_01 'Microsoft.Network/virtualNetworks/subnets@2023-11-01' = {
parent: virtualNetwork
name: 'default'
properties: {
addressPrefixes: [
'10.70.0.0/24'
]
serviceEndpoints: [
{
service: 'Microsoft.Storage'
}
{
service: 'Microsoft.Sql'
}
]
}
}
output virtualNetworkObject object = virtualNetwork
However when I run the main.bicep, I get the following error in Azure…
The language expression property ‘id’ doesn’t exist, available properties are ‘apiVersion, location, properties, condition, isConditionTrue, subscriptionId, resourceGroupName, scope, resourceId, referenceApiVersion, existing, isTemplateResource, isAction, isExtensibleResourceReference, provisioningOperation’.