Udostępnij za pośrednictwem


Kod błędu Bicep — BCP401

Ten błąd występuje, gdy używasz wyrażeń do definiowania jednostek zasobów, gdy Spread operator jest konwertowany na funkcję. Jest to ograniczenie w formacie JSON.

Opis błędu

The spread operator "..." is not permitted in this location.

Przykłady

Poniższy przykład zgłasza błąd, ponieważ spread operator jest używany do definiowania treści zasobu:

param location string = resourceGroup().location
param addressPrefix string = '10.0.0.0/24'
 
resource vnet 'Microsoft.Network/virtualNetworks@2024-01-01' = {
  name: 'vnetName'
  location: location
 
  ...(addressPrefix != '' ? {
    properties: {
      addressSpace: {
        addressPrefixes: [
          addressPrefix
        ]
      }
    }
  } : {})
}

Błąd można naprawić przy użyciu operatora na niższym poziomie:

param location string = resourceGroup().location
param addressPrefix string = '10.0.0.0/24'
 
resource vnet 'Microsoft.Network/virtualNetworks@2024-01-01' = {
  name: 'vnetName'
  location: location
 
  properties: {
    addressSpace: {
      ...(addressPrefix != '' ? {
        addressPrefixes: [
          addressPrefix
        ]        
      } : {})
    }
  }
}

Następne kroki

Aby uzyskać więcej informacji na temat błędów i kodów ostrzeżeń Bicep, zobacz Diagnostyka rdzenia Bicep.