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:
- Ressourcengruppe: Bereich für unterschiedliche Ressourcengruppe.
- Abonnement: Bereitstellungsbereiche.
- Verwaltungsgruppe: Bereitstellungsbereiche.
- Mandant: Bereitstellungsbereiche.
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.