Condividi tramite


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:

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.