Udostępnij przez


Kod diagnostyczny bicepsa - BCP138

Ta diagnostyka występuje, gdy próbujesz użyć for-expression w miejscu, gdzie Biceps na to nie pozwala.

For-ekspresje można stosować w kilku konkretnych miejscach bicepsa. Możesz ich używać do definiowania zasobów, modułów, zmiennych i wyników. Możesz też używać ich wewnątrz zasobów i modułów, ustawiając ich właściwości. Jeśli umieścisz for-expression bezpośrednio w niewspieranej lokalizacji, na przykład w dosłownym obiekcie, Bicep rzuca BCP138, ponieważ składnia tam nie jest wspierana.

Description

Wyrażenia dla nie są obsługiwane w tym kontekście. Wyrażenia dla mogą być używane jako wartości właściwości zasobu, modułu, zmiennej i danych wyjściowych albo wartości właściwości zasobu i modułu.

Level

Error

Rozwiązanie

Rozwiązaniem jest przeniesienie wyrażenia for-do obsługiwanej lokalizacji.

Przykłady

Poniższy przykład ma pętlę for wewnątrz własności dysków literalu obiektu. Biceps nie pozwala na wyrazy w tym kontekście.


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

Rozwiązaniem jest przeniesienie wyrażenia for-do własnej zmiennej, a następnie odniesienie do tej zmiennej wewnątrz obiektu:

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

Dalsze kroki

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