Biceps-diagnosecode - BCP034

Deze diagnose treedt op wanneer je een typeverschil hebt binnen een array, specifiek omdat een item in een array niet overeenkomt met het datatype dat door de bevattende eigenschap wordt verwacht.

Description

De omvattende array verwachtte een item van het type "module[] | (bron | module) | resource[]", maar het geleverde item was van het type "string".

Level

Waarschuwing / Fout

Solution

Zorg ervoor dat elk item dat je in een array-eigenschap plaatst overeenkomt met het verwachte datatype dat door die eigenschap vereist is.

Voorbeelden

De dependsOn eigenschap verwacht een array van resourcesymbolische namen of modulesymbolische namen gedefinieerd in het huidige bestand. Het accepteert geen resource-ID's, strings of variabelen met resourcenamen.

// Define a variable holding the Storage Account name
param storageAccountName string = uniqueString(resourceGroup().id, 'stgacct')

// Define the Storage Account resource
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
  name: storageAccountName
  location: resourceGroup().location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

// Define the Web App resource that depends on the Storage Account
resource webApp 'Microsoft.Web/serverfarms@2025-03-01' = {
  name: 'my-app-service-plan'
  location: resourceGroup().location
  sku: {
    name: 'B1'
  }
  dependsOn: [
    // BCP034: Expected 'resource', but got 'string'
    // This is WRONG: it's a string, not the resource reference
    storageAccountName
  ]
}

Je kunt de diagnostische code oplossen door de symbolische naam van de bron te gebruiken in plaats van de string:

// Define a variable holding the Storage Account name
param storageAccountName string = uniqueString(resourceGroup().id, 'stgacct')

// Define the Storage Account resource
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
  name: storageAccountName
  location: resourceGroup().location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

// Define the Web App resource that depends on the Storage Account
resource webApp 'Microsoft.Web/serverfarms@2025-03-01' = {
  name: 'my-app-service-plan'
  location: resourceGroup().location
  sku: {
    name: 'B1'
  }
  dependsOn: [
    stg
  ]
}

Volgende stappen

Zie Bicep-kerndiagnose voor meer informatie over Bicep-diagnostische gegevens.