Freigeben über


Bicep-Fehlercode – BCP139

Dieser Fehler tritt auf, wenn Sie resource Ressourcen in einem anderen Bereich als dem Zielbereich bereitstellen. Sie sollten stattdessen module verwenden. Weitere Informationen finden Sie in den folgenden Artikeln basierend auf dem Umfang:

Fehlerbeschreibung

A resource's scope must match the scope of the Bicep file for it to be deployable. You must use modules to deploy resources to a different scope.

Lösung

Um Ressourcen in einem Bereich bereitzustellen, der nicht der Zielbereich ist, fügen Sie eine module.

Beispiele

Im folgenden Beispiel wird eine Speicherkontoressource in einer anderen Ressourcengruppe im selben Abonnement bereitgestellt. Im Beispiel wird der Fehler ausgelöst, da der module Deklarationstyp nicht verwendet wird:

param otherResourceGroup string
param location string 

// resource deployed to a different resource group in the same subscription
resource storage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: uniqueString(resourceGroup().id)
  scope: resourceGroup(otherResourceGroup)
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Sie können den Fehler mithilfe des module Deklarationstyps beheben:

param otherResourceGroup string

// module deployed to a different resource group in the same subscription
module exampleModule 'module.bicep' = {
  name: 'deployStorageToAnotherRG'
  scope: resourceGroup(otherResourceGroup)
}

Im folgenden Beispiel wird eine Ressourcengruppe in einem anderen Abonnement bereitgestellt. Das Beispiel löst den Fehler aus, da module er nicht verwendet wird.

targetScope = 'subscription'

param otherSubscriptionID string

// resource deployed to a different subscription
resource exampleResource 'Microsoft.Resources/resourceGroups@2024-03-01' =  {
  name: 'deployToDifferentSub'
  scope: subscription(otherSubscriptionID)
  location: 'eastus'
}

Sie können den Fehler mithilfe des module Deklarationstyps beheben:

targetScope = 'subscription'

param otherSubscriptionID string

// module deployed to a different subscription
module exampleModule 'module.bicep' = {
  name: 'deployToDifferentSub'
  scope: subscription(otherSubscriptionID)
}

Nächste Schritte

Weitere Informationen zu Bicep-Fehler- und Warnungscodes finden Sie unter Bicep-Kerndiagnose.