Partager via


Code d’erreur Bicep - BCP139

Cette erreur se produit lorsque vous utilisez resource pour déployer des ressources dans une étendue différente de celle de la cible. Vous devez utiliser à la place module. Pour plus d’informations, consultez les articles suivants en fonction de l’étendue :

Description de l'erreur

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.

Solution

Pour déployer des ressources dans une étendue qui n’est pas l’étendue cible, ajoutez un module.

Exemples

L’exemple suivant déploie une ressource de compte de stockage sur un autre groupe de ressources dans le même abonnement. L’exemple déclenche l’erreur, car le module type de déclaration n’est pas utilisé :

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'
}

Vous pouvez corriger l’erreur à l’aide du module type de déclaration :

param otherResourceGroup string

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

L’exemple suivant déploie un groupe de ressources sur un autre abonnement. L’exemple déclenche l’erreur, car module elle n’est pas utilisée

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'
}

Vous pouvez corriger l’erreur à l’aide du module type de déclaration :

targetScope = 'subscription'

param otherSubscriptionID string

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

Étapes suivantes

Pour plus d’informations sur les codes d’erreur et d’avertissement Bicep, consultez diagnostics principaux Bicep.