Freigeben über


Bizeps-Diagnosecode – BCP036

Diese Diagnose tritt auf, wenn man einer Eigenschaft einen Wert zuweist, deren erwarteter Datentyp nicht mit dem Typ des zugewiesenen Wertes kompatibel ist.

Description

Der Eigenschaftsname> der Eigenschaft <erwartete einen Wert vom Typ <Datentyp,> aber der angegebene Wert ist vom Typ <Datentyp.>

Ebene

Warnung / Fehler

Lösung

Weisen Sie einen Wert mit dem richtigen Datentyp zu.

Beispiele

Das folgende Beispiel erhebt die Diagnose, da sku als Zeichenkette definiert ist, nicht als ganzzahlige Zeichen:

type storageAccountConfigType = {
  name: string
  sku: string
}

param foo storageAccountConfigType = {
  name: 'myStorage'
  sku: 2
}

Sie können das Problem beheben, indem Sie einen Zeichenfolgenwert zuweisen zu sku:

type storageAccountConfigType = {
  name: string
  sku: string
}

param foo storageAccountConfigType = {
  name: 'myStorage'
  sku: 'Standard_LRS' 
}

Das folgende Beispiel erhebt die Diagnose, da die accessPolicies Eigenschaft ein Array einzelner AccessPolicyEntry Objekte erwartet. Die verschachtelten Klammern [ ... ] innerhalb der Schleife erzeugen ein Array von Arrays.

param principalIds array = [
  'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy'
]

resource keyVault 'Microsoft.KeyVault/vaults@2021-10-01' = {
  name: 'my-kv-001'
  location: resourceGroup().location
  properties: {
    tenantId: subscription().tenantId
    sku: {
      family: 'A'
      name: 'standard'
    }
    accessPolicies: [
      for principalId in principalIds: [ // <--- The extra array brackets here [ ]
        {
          objectId: principalId
          tenantId: subscription().tenantId
          permissions: {
            secrets: ['Get', 'List']
          }
        }
      ]
    ]
  }
}

Die Lösung besteht darin, die unnötigen Array-Klammern ([]) um das erzeugte Element innerhalb der Schleife zu entfernen. Dies erzeugt ein Array einzelner AccessPolicyEntry-Objekte, wie von der Eigenschaft accessPolicies erwartet.

param principalIds array = [
  'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy'
]

resource keyVault 'Microsoft.KeyVault/vaults@2021-10-01' = {
  name: 'my-kv-001'
  location: resourceGroup().location
  properties: {
    tenantId: subscription().tenantId
    sku: {
      family: 'A'
      name: 'standard'
    }
    accessPolicies: [
      for principalId in principalIds: {
        objectId: principalId
        tenantId: subscription().tenantId
        permissions: {
          secrets: ['Get', 'List']
        }
      }
    ]
  }
}

Nächste Schritte

Weitere Informationen zur Bicep-Diagnose finden Sie unter Bicep-Kerndiagnose.