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 :
- Groupe de ressources : étendue à un autre groupe de ressources.
- Abonnement : étendues de déploiement.
- Groupe d’administration : étendues de déploiement.
- Locataire : étendues de déploiement.
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.