Udostępnij przez


Kod diagnostyczny bicepsa - BCP034

Ta diagnostyka występuje, gdy w tablicy występuje niedopasowanie typów, a konkretnie to, że element w tablicy nie odpowiada typowi danych oczekiwanym przez właściwość zawierającą.

Description

Otaczająca tablica oczekiwała elementu typu "module[] | (zasób | moduł) | zasob[]", ale dostarczony element miał typ "string".

Level

Ostrzeżenie / Błąd

Rozwiązanie

Upewnij się, że każdy element umieszczony w własności tablicy odpowiada oczekiwanemu typowi danych wymaganemu przez tę właściwość.

Przykłady

Właściwość dependsOn oczekuje tablicy symbolicznych nazw zasobów lub modułów zdefiniowanych w aktualnym pliku. Nie akceptuje identyfikatorów zasobów, łańcuchów ani zmiennych zawierających nazwy zasobów.

// 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
  ]
}

Możesz naprawić diagnostykę, używając symbolicznej nazwy zasobu zamiast łańcucha:

// 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
  ]
}

Dalsze kroki

Aby uzyskać więcej informacji na temat diagnostyki Bicep, zobacz Diagnostyka rdzenia Bicep.