Codice di errore Bicep - BCP139
Questo errore si verifica quando si usa resource
per distribuire le risorse in un ambito diverso da quello di destinazione. È consigliabile usare module
invece . Per altre informazioni, vedere gli articoli seguenti in base all'ambito:
- Gruppo di risorse: ambito di un gruppo di risorse diverso.
- Sottoscrizione: ambiti di distribuzione.
- Gruppo di gestione: ambiti di distribuzione.
- Tenant: ambiti di distribuzione.
Descrizione errore
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.
Soluzione
Per distribuire le risorse in un ambito che non è l'ambito di destinazione, aggiungere un oggetto module
.
Esempi
Nell'esempio seguente viene distribuita una risorsa dell'account di archiviazione in un gruppo di risorse diverso nella stessa sottoscrizione. L'esempio genera l'errore perché il module
tipo di dichiarazione non viene usato:
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'
}
È possibile correggere l'errore usando il module
tipo di dichiarazione:
param otherResourceGroup string
// module deployed to a different resource group in the same subscription
module exampleModule 'module.bicep' = {
name: 'deployStorageToAnotherRG'
scope: resourceGroup(otherResourceGroup)
}
Nell'esempio seguente viene distribuito un gruppo di risorse in una sottoscrizione diversa. L'esempio genera l'errore perché module
non viene usato
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'
}
È possibile correggere l'errore usando il module
tipo di dichiarazione:
targetScope = 'subscription'
param otherSubscriptionID string
// module deployed to a different subscription
module exampleModule 'module.bicep' = {
name: 'deployToDifferentSub'
scope: subscription(otherSubscriptionID)
}
Passaggi successivi
Per altre informazioni sui codici di errore e di avviso di Bicep, vedere Diagnostica dei core Bicep.