Freigeben über


Bizeps-Diagnosecode - BCP138

Diese Diagnose tritt auf, wenn man versucht, eine For-Expression an einer Stelle anzuwenden, an der der Bizeps es nicht erlaubt.

For-Ausdrücke können an einigen bestimmten Stellen im Bizep verwendet werden. Sie können sie verwenden, um Ressourcen, Module, Variablen und Ausgaben zu definieren. Du kannst sie auch in Ressourcen und Modulen verwenden, wenn du ihre Eigenschaften einstellst. Wenn du einen for-Ausdruck direkt in einen nicht unterstützten Speicherort platzierst, wie zum Beispiel ein Objektliteral, wirft Bicep BCP138 aus, weil die Syntax dort nicht unterstützt wird.

Description

For-Ausdrücke werden in diesem Zusammenhang nicht unterstützt. For-Ausdrücke können als Werte von Ressourcen-, Modul-, Variablen- und Ausgabedeklarationen oder als Werte von Ressourcen- und Moduleigenschaften verwendet werden.

Ebene

Fehler

Lösung

Die Lösung besteht darin, den for-Ausdruck in den unterstützten Bereich zu verschieben.

Examples

Das folgende Beispiel hat eine for-Schleife innerhalb der Disks-Eigenschaft eines Objektliterals. Der Bizeps erlaubt in diesem Zusammenhang keine Ausdrucksformen.


param diskCount int = 5

var vmConfiguration = {
  description: 'Virtual machine configuration'
  dataDisks: [
    for diskIndex in range(0, diskCount): {
      name: 'dataDisk${diskIndex + 1}'
      sizeGB: 1
      index: diskIndex
    }
  ]
}

output vmConfig object = vmConfiguration

Die Lösung besteht darin, den for-Ausdruck in eine eigene Variable zu verschieben und diese dann innerhalb des Objekts zu referenzieren:

param diskCount int = 5

var dataDiskArray = [
  for diskIndex in range(0, diskCount): {
    name: 'dataDisk${diskIndex + 1}'
    sizeGB: 1
    index: diskIndex
  }
]

var vmConfiguration = {
  description: 'Virtual machine configuration'
  dataDisks: dataDiskArray
}

output vmConfig object = vmConfiguration

Nächste Schritte

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